Таймер только уменьшается.
Собственно, есть код.
Но setTimer работает только в меньшую сторону.Если увеличивать интервал, то ничего не происходит <script type="text/javascript"> function addBar(id, bubbleNumber, barHeight, barWidth, barStatusHeight, bubbleBoom) { var koef= []; var koef2= []; var koef3= []; var barContainer = document.getElementById(id); barContainer.style.width = barWidth + 'px'; barContainer.style.height = barHeight + 'px'; var bubbleContainer = document.createElement('div'); bubbleContainer.className = 'barStatus'; bubbleContainer.style.width = barWidth+ "px"; bubbleContainer.style.height = barHeight+ "px"; barContainer.appendChild(bubbleContainer) for (var i=0; i<bubbleNumber; i++) { var bub = document.createElement('img'); bub.className = 'bubbleImg'; bub.src= 'animationres/bubble.png'; bub.style.position ="absolute"; //bub.style.height= Math.random()*10 + 5 +'px'; bubbleContainer.appendChild(bub); koef[i] = Math.random(); koef2[i] = Math.random(); koef3[i] = Math.random(); } //вот он этот сеттаймер this.setTimer = function(interval) { timer = setInterval(animate, interval) } this.setTimer(100) var k = 0; var delta=0; var progres = []; var position= []; var bubble = document.getElementsByClassName('bubbleImg'); for(var gg=0; gg<bubbleNumber; gg++) { position[gg] = Math.random()*barHeight}; //отлавливаем наведение мышки на пузырек и лопаем его, если bubbleBoom передан !=0 var bubbleBoom = bubbleBoom || 0; if (bubbleBoom) { bubbleContainer.onmouseover = function(event) { event = event || window.event; var target = event.target || event.srcElement; while(target != this) { if (target.className == 'bubbleImg') { target.style.display= 'none'; } target = target.parentNode; } } } function animate() { for (var tt=0; tt<bubble.length; tt++){ position[tt] = position[tt]+2; progres[tt] = position[tt]/barHeight; var deltaHor = Math.sin((Math.pow(progres[tt]*koef[tt], 4))*6*Math.PI); var deltaVer = Math.pow(progres[tt], 3); bubble[tt].style.height= koef2[tt]*7 + progres[tt]*8 +'px'; bubble[tt].style.left =koef[tt]*(barWidth-5) + deltaHor*5 +'px'; function ressetBuble() { bubble[tt].style.display = ""; progres[tt] = 0; position[tt] =0; koef[tt] = Math.random(); koef2[tt] = Math.random(); koef3[tt] = Math.random(); }; bubble[tt].style.bottom = koef3[tt]*(barStatusHeight/10) + deltaVer*barHeight*(1-koef[tt]/3) +'px'; if (parseInt(bubble[tt].style.bottom, 10) >= barStatusHeight) { ressetBuble() }; } } } var ff = new addBar('barContainer', 50, 200, 200, 200, 1) ff.setTimer(50) </script> |
PashPP,
1.Первое, при установке нового таймера, нужно удалять предыдущий таймер с id timer Либо если у Вас несколько таймеров - делать id для таймеров массивом |
Deff,
Хм. Спасибо. Сделал вот так, вроде работает. this.setTimer = function(interval) { if (this.timer!= undefined) {clearInterval(this.timer)}; this.timer = setInterval(animate, interval); } this.setTimer(100); |
Часовой пояс GMT +3, время: 19:34. |