Opacity fade nem működik osztály esetén
Sziasztok az a problémám hogy van egy opacity fade-elő kódom ami szép átlátszóságot generál.ezt is szeretném átalakítani egy osztállyá hogy ha kell több is működjön egyszerre.legjobb ha bemásolom a működő kódot és a nemműködőt is.Ez működik is szépen
most az osztály amit összetákoltam:Eddig jutottam de itt ismeretlen hibába ütköztem ugyanis a kód átmenet nélkül átvált a legkissebb vagy a legnagyobb opacity értékre minden átmenet nélkül.valahogy a SetTimeout függvénnyek nem futnak le a for ciklusokban aszthiszem vagy egyéb ismeretlen hiba lép fel.
Nagyon szépen megköszönöm ha valaki leirja hogy milehet a hiba mert még elég tapasztalatlan vagyok.köszi előre is.
■ - function opacity(id, opacStart, opacEnd, millisec) {
- //speed for each frame
- var speed = Math.round(millisec / 100);
- var timer = 0;
- //determine the direction for the blending, if start and end are the same nothing happens
- if(opacStart > opacEnd) {
- for(i = opacStart; i >= opacEnd; i--) {
- window.setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
- timer++;
- }
- } else if(opacStart < opacEnd) {
- for(i = opacStart; i <= opacEnd; i++)
- {
- window.setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
- timer++;
- }
- }
- }
- //change the opacity for different browsers
- function changeOpac(opacity, id) {
- var object = document.getElementById(id).style;
- object.opacity = (opacity / 100);
- object.MozOpacity = (opacity / 100);
- object.KhtmlOpacity = (opacity / 100);
- object.filter = "alpha(opacity=" + opacity + ")";
- }
most az osztály amit összetákoltam:
- var opacity2 = function(id, opacStart, opacEnd, millisec) {
- this.object = document.getElementById(id).style;
- this.opacStart = opacStart;
- this.opacEnd = opacEnd;
- //speed for each frame
- var speed = Math.round(millisec / 100);
- var timer= 0;
- //this.intid = new Array();
- }
- //determine the direction for the blending, if start and end are the same nothing happens
- opacity2.prototype.fade = function(){
- var self= this;
- if(this.opacStart > this.opacEnd) {
- for(i = this.opacStart; i >= this.opacEnd; i--) {
- //alert(i);
- window.setTimeout(function (){self.changeOpac(i);},(this.timer * this.speed));
- this.timer++;
- }
- } else if(this.opacStart < this.opacEnd) {
- for(i = this.opacStart; i <= this.opacEnd; i++) {
- //alert(i);
- window.setTimeout(function (){self.changeOpac(i);},(this.timer * this.speed));
- this.timer++;
- }
- }
- }
- //change the opacity for different browsers
- opacity2.prototype.changeOpac = function(opacity) {
- this.object.opacity = (opacity / 100);
- this.object.MozOpacity = (opacity / 100);
- this.object.KhtmlOpacity = (opacity / 100);
- this.object.filter = "alpha(opacity=" + opacity + ")";
- }
Nagyon szépen megköszönöm ha valaki leirja hogy milehet a hiba mert még elég tapasztalatlan vagyok.köszi előre is.
talan
-cs-
Sanyi
igen biztos
..
Amig teszteled commenteld ki a regit, hogy ne zavarjon
változatlan
...
Sajna most nincs lehetosegem kiprobalni, lehet csak vaktaba lovoldozom :-)
-cs-
Sanyi
miért kell osztály?
most megnéztem a kódodat simán működik több is párhuzamosan nálam...
a body részt bemásolom ezzel működött:
nemtudtam
És valóban működik
értem már vagyis kapizsgálom
javaslat
persze azért nem vészes ez sem, csak ha az oldaladon nagyon sok javascript lesz akkor már érezhetőek ezek a finomhangolások...