Нужно непрерывное выполнение с использованием обработчика - PullRequest
2 голосов
/ 08 сентября 2010

В настоящее время у меня есть две ссылки, две стрелки, одна направленная вверх, а другая вниз, я хочу сделать прокрутку содержимого, расположенного в <div id="scroller1">, который маскируется <div id="scroller">.

Другими словами:

<div id="scroller">
    <div id="scroller1">...</div>
</div>

Мой код выглядит так:

$("a.mouseover_up").mousedown(function () {
var currentMargin = $("#scroller1").css("marginTop");
currentMargin = currentMargin.replace("px","");

$("#scroller1").animate({"marginTop": (currentMargin - 5) + "px"});
return false;
});

То, что происходит сейчас, это то, что он правильно выполняет animate, но останавливает прокрутку после 5px. Я хочу, чтобы он анимировался, пока пользователь удерживает кнопку мыши на ссылке выше.

Любая помощь приветствуется. Спасибо.

1 Ответ

1 голос
/ 08 сентября 2010

Я думаю, что-то вроде этого будет работать:

var timeout;
var clicker = $('#clicker');


clicker.mousedown(function(){
    timeout = setInterval(function(){
        // Go up!
    }, 500);

    return false;
});

clicker.mouseup(function(){
    clearInterval(timeout);

    return false;
});

См. Эту демонстрацию: http://jsfiddle.net/J9QNZ/2

...