Inlägg märkta ‘mouseleave’

Background opacity med Mootools

onsdag, 27 maj, 2009

När man skall göra lite roliga onmouseover effekter är det alltid roligt att att jobba med opacitet. Och varför inte använda Mootools för att sköte effekterna? Problemet är att från och till att man vill inte dra ner opaciteten på texten för att det då blir svårläst. Istället kan man lägga en div med en bakgrundsbild som man sätter opacitet på genom mouseenter och mouseleave funktionerna. Effekten kan göras väldigt påtaglig och koden är extremt liten jämfört med att ladda flera bilder representerar de olika stegen. Med lite utveckling av koden kan ju olika stadier i knapptryckningen ha olika effekter, men det får bli ett annat inlägg.

här är ett exempel:

Test av knappeffekter

Här kommer JavaScript koden:

$$('.startButton').addEvents({
       mouseenter: function(){
           $(this.getElement('.startButtonBackground')).morph({
       		'opacity': [1]
       	   });
       },
       mouseleave: function(){
           $(this.getElement('.startButtonBackground')).morph({
       		'opacity': [0.5]
       	   });
        }
});
$$('.startButtonBackground').each(function(el) {
   el.set('opacity','.5');
});

Mouseenter och Mouseleave för att hantera muspekarevent med mootools

torsdag, 16 april, 2009

Vi visade ett menyscript för några veckor sedan och nu kommer lite mootools kod som på ett mycket enkelt vis hanterar onmouseover. Det bygger på addEvents på ett objekt. Som vi har satt det nu så hämtar det ju alla objket med classnamnet ”Gaos”. Men självklart kan du få detta att peka på id eller kanske ul li taggar. Sen använder vi funktionerna ‘mouseenter’ och ‘mouseleave’ och så förändrar vi hur detta objekts class definition görs. Så när musen kommer över objektet läggs först ett mellanslag och sedan classdefinitionen over på. Samma sak tas givetvis bort när musen inte längre är på objektet.

$$('.Gaos').addEvents({
	'mouseenter': function(){
		this.className += " over";
	},
	'mouseleave': function(){
		this.className = this.className.replace(" over", "");
	}
});

På detta vis kan ju css defineras för att sköta förändringen t.ex. om objekten ligger i en div som har id ”page” skulle man kunna göra såhär:

#page .over{border:1px solid red}

Nu är detta ett inlägg som vänder sig till nybörjare och det är väl på tiden att vi visar lite kod som inte behöver göras något med innan den används, så här kommer koden den kompletta koden för att göra följande om du bara har pekat in mootoolsbiblioteket:

var Site = {
	start : function () {
	    window.addEvent('domready', function() {
		    $$('.Gaos').addEvents({
				'mouseenter': function(){
					this.className += " over";
				},
				'mouseleave': function(){
					this.className = this.className.replace(" over", "");
				}
		    });
	    });
	}
}
window.addEvent('load', Site.start);