Goede morgen allemaal,
Ik heb een classje geschreven met het prototype framework.
Moet nog hoop aan gebeuren. Maar loop tegen een probleempje aan met meerdere instanties.
Werkt opzich tot zover redelijk naar behoren.
D.w.z. ik had wat meer cross browser verwachtingen, maar dat komt wel goed.
Als ik echter de class meerdere keren aanroep, werkt het alleen op het laatste element.
Verder geen errors of iets dergelijks in FireBug.
Ben meer een backend scripter, dus wellicht kan iemand mij vertellen waarom dit niet helemaal goed gaat?
Misschien iets te maken met de eventlisteners of het meerdere keren aanroepen van observer window load ?
Of met clearInterval(); ?
Ik heb een classje geschreven met het prototype framework.
Moet nog hoop aan gebeuren. Maar loop tegen een probleempje aan met meerdere instanties.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
| Fader = Class.create({ initialize: function(id){ this._id = id; this._opacity = 1; this._interval = null; self = this; Event.observe(window, 'load', function(){ Event.observe(id, 'mouseout', self.delayedUp.bindAsEventListener(self), false); Event.observe(id, 'mouseover', self.delayedDown.bindAsEventListener(self), false); }); }, up : function(){ if(this._opacity < 1){ this._opacity = this._opacity + 0.1; $(this._id).setStyle({opacity : this._opacity}); } else{ clearInterval(this._interval); } }, down : function(){ if(this._opacity > 0){ this._opacity = this._opacity - 0.1; $(this._id).setStyle({opacity : this._opacity}); } else{ clearInterval(this._interval); } }, delayedUp : function(){ self = this; clearInterval( self._interval ); this._interval = window.setInterval(function(){ self.up() }, 100); }, delayedDown : function(){ self = this; clearInterval( self._interval ); this._interval = window.setInterval(function(){ self.down() }, 100); } }); |
Werkt opzich tot zover redelijk naar behoren.
D.w.z. ik had wat meer cross browser verwachtingen, maar dat komt wel goed.
JavaScript:
1
2
| new Fader('fade-outer0'); new Fader('fade-outer1'); |
Als ik echter de class meerdere keren aanroep, werkt het alleen op het laatste element.
Verder geen errors of iets dergelijks in FireBug.
Ben meer een backend scripter, dus wellicht kan iemand mij vertellen waarom dit niet helemaal goed gaat?
Misschien iets te maken met de eventlisteners of het meerdere keren aanroepen van observer window load ?
Of met clearInterval(); ?