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...