Собственно, есть код.
(между прочим это анимация ПУЗИРЬКОВ)
Но 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>