День добрый! Такая задача:
Бегущая строка снизу вверх, очередная прокручиваемая строка приостанавливается на неск. секунд, при наведении блок останавливается пока не уберут курсор. Прокрутка циклична.
Проблема: если навести на одну строку, потом сразу на другую, код не успевает это обработать и всё сбивается - блок со строками, не реагируя на курсор, уезжает вверх.
Исходный код:
<div id="anim" style="position: relative; height: 25px; background-color: aqua; line-height: 25px;" onmouseover="window.isStart = false" onmouseout="window.isStart = true; animateNews(number);">
<div id="anim2" style="position: absolute; margin-top: 25px;">
<a href="#">1111111</a><br />
<a href="#">2222222</a><br />
<a href="#">3333333</a>
</div>
</div>
isStart = true;
number = 0;
function animateNews(i){
number = i; // какая строка по счету крутится
if(isStart == true){
len = jQuery('#anim').height(); // вычисляет, на какой интервал поднимать строку, чтобы в нужный момент сделать ее остановку на пару сек
a1 = jQuery('#anim2').height();
bottom = parseInt("-" + a1);
size = a1 / len;
a2 = parseInt(jQuery('#anim2').css('bottom'));
jQuery('#exam').html(bottom);
if((i <= size) && (a2 < len)){
jQuery("#anim2").animate({"bottom": "+="+len+"px"}, 1000);
if(i<size)
setTimeout("animateNews("+(i+1)+")", 2000);
else
setTimeout("animateNews("+(i+1)+")", 1010);
}else{ // условие для последней строки, чтобы перевести блок на исходное положение и начать сначала
jQuery("#anim2").css({'bottom': bottom});
i=0;
setTimeout("animateNews("+(i)+")", 0);
}
}else{
return;
//setTimeout("animateNews("+(i)+")", 500);
}
}
animateNews(0);
Может можно остановить блок другими путями (приостановить функцию), либо еще что дописать? Направьте, плиз