Hallo, ich bekomm hier gerade die Wut. Ich komm nicht weiter.
Und zwar habe ich mir mit Prototype und scriptaclous eine kleine Bildergalerie gemacht. Ich zeig mal den wichtigsten Codeausschnitt.
Opacity wird bei mouseover erhöht und bei mouseout verringert. Damit das ganze sich nicht überschneidet, wird mit busy gearbetet um zu sehen wenn der effekt fertig ist.
Alles anzeigen
So das funktioniert alles auch. Das problem was ich jetzt habe, ich möchte ein Handler hinzufügen und zwar onClick. Passiert das, wird die class geändert und onmouseout soll "deaktiviert" werden, damit das Bild nicht wieder ausfaded. Jedoch wie stelle ich das an?
Ich hab versucht mouseout zu "überschreiben" oder ins Leere zu führen, es hat aber nichts gebracht.
Mein Versuch sah bisher so aus:
Mal schaun ob jemand helfen kann, danke im Vorraus.
Und zwar habe ich mir mit Prototype und scriptaclous eine kleine Bildergalerie gemacht. Ich zeig mal den wichtigsten Codeausschnitt.
Opacity wird bei mouseover erhöht und bei mouseout verringert. Damit das ganze sich nicht überschneidet, wird mit busy gearbetet um zu sehen wenn der effekt fertig ist.
Quellcode
- var li = $$('a img').each(function(element) {
- var busy = false, over, out;
- element.setOpacity(0.5);
- element.observe('mouseover', (over = function(event) {
- if(this.getStyle('opacity')==0.5) {
- Effect.Appear(this, {
- from: 0.5,
- to: 1,
- duration:0.5,
- beforeStart: function() {busy=true},
- afterFinish: function() {busy=false},
- });
- }
- }.bind(element)))
- element.observe('mouseout', (out = function(event) {
- if(busy){
- window.setTimeout(function() {out(event)},200)
- }else{
- Effect.Fade(this, {
- from: this.getStyle('opacity'),
- to: 0.5,
- duration:0.5,
- beforeStart: function() {busy=true},
- afterFinish: function() {busy=false},
- });
- }
- }.bind(element)));
- });
- });
So das funktioniert alles auch. Das problem was ich jetzt habe, ich möchte ein Handler hinzufügen und zwar onClick. Passiert das, wird die class geändert und onmouseout soll "deaktiviert" werden, damit das Bild nicht wieder ausfaded. Jedoch wie stelle ich das an?
Ich hab versucht mouseout zu "überschreiben" oder ins Leere zu führen, es hat aber nichts gebracht.
Mein Versuch sah bisher so aus:
Mal schaun ob jemand helfen kann, danke im Vorraus.