Делаю вертикально скроллящееся меню по типу вот этого: http://www.netpro.ru/?action=DABlank2 (откройте "Мы сделали"), только на javaScript + jQuery HTML: <div id="left_list"> <p class="project_number"><a href="#">007</a></p> <p class="project_number"><a href="#">012</a></p> ... <p class="project_number"><a href="#">186</a></p> </div> java script: $(document).ready(function(){ // При наведении на левый блок var winHeight = $(window).height(); var margin = $('#left_list').height() - winHeight; // движение при попадании курсора в области $('#left_list').unbind('mouseover').mouseover(function(e){ // top 1/3 if (e.pageY < (winHeight / 3)) { var speed = (winHeight / 6) / e.pageY; if (speed > 2) speed = 2; $('#direction').val('top'); } // bottom 1/3 if (e.pageY > 2 * (winHeight / 3)) { var speed = (e.pageY - ((2 / 3) * winHeight)) / (winHeight / 6) + 0.5; if (speed > 2) speed = 2; $('#direction').val('bottom'); } $('#speed').val(speed); var direction = $('#direction').val(); var speed = $('#speed').val(); // bottom 1/3, list moves top if (direction == 'bottom') { if (parseInt($('#left_list').css('margin-top')) > (-1) * margin) { $('#left_list').animate({marginTop: '-=50px'}, (300 / speed)); $('#int').val(parseInt($('#left_list').css('margin-top'))); } else { $('#left_list').animate({marginTop: '-' + margin + 'px'}, (300 / speed)); $('#int').val(parseInt($('#left_list').css('margin-top'))); } } // top 1/3, list moves bottom if (direction == 'top') { if ((parseInt($('#left_list').css('margin-top'))) < 0) { $('#left_list').animate({marginTop: '+=50px'}, (300 / speed)); $('#int').val(parseInt($('#left_list').css('margin-top'))); } else { $('#left_list').animate({marginTop: '0px'}, (300 / speed)); $('#int').val(parseInt($('#left_list').css('margin-top'))); } } // стопим, если увели мышь в середину if (direction == 'none') { $('#left_list').stop(); } }); // остановка при выведении указателя за пределы $('#left_list').unbind('mouseout').mouseout(function(){ $('#speed').val('0'); $('#direction').val('none'); $('#left_list').stop(); }); // увеличение номера при наведении $('#left_list > p.project_number').hover( function() { $(this).animate({fontSize: '10pt'}, 150); }, function(){ $(this).animate({fontSize: '8pt'}, 150); } ); ); Суть проблемы: Во всем, кроме ФайрФокса, блок прокручивается именно при движении мыши, а при простое на месте тоже останавливается. Надо, естественно, чтобы везде просто при поднесении мыши к краю списка, он бы скроллился. Пробовал сделать через setInterval, но это страшно тормозит скрипт, нет ли очевидного и грамотного способа реализовать это? Спасибо.