如何为悬停事件扩展jScrollPane?

时间:2010-12-11 00:51:42

标签: jquery jscrollpane

从示例中找到here

我希望在按住鼠标时滚动jScrollPane。我的理由是我可以制作自己的箭头按钮。我希望它们位于顶部和底部的滚动窗格之外,并具有相同的窗格宽度。

我知道如何让按钮在mousehovermousedown jquery事件上工作,但是窗格只会向下滚动一次。我想给它一个Y值,大约20,然后让它继续检查mousedown是否仍为真等。

但我尝试的任何东西似乎都无效。

1 个答案:

答案 0 :(得分:4)

您需要设置间隔计时器,当鼠标悬停在您的按钮上时,该计时器会反复触发。您可以通过查看箭头按钮在jScrollPane代码中的工作方式来获得有关如何执行此操作的一些提示:

https://github.com/vitch/jScrollPane/blob/master/script/jquery.jscrollpane.js#L503

以下是一些示例代码,它从插件外部执行相同的操作:

var api = $('.scroll-pane').jScrollPane().data('jsp');
$('#hover-down').bind(
    'mouseover',
    function()
    {
        var scrollInterval,
            link = $(this),
            doScroll = function()
            {
                api.scrollByY(5);
            };
        link.bind(
            'mouseout.demo',
            function()
            {
                clearInterval(scrollInterval);
                link.unbind('mouseout.demo');
            }
        );
        doScroll();
        scrollInterval = setInterval(doScroll, 50);
    }
);

你可以在这个jsfiddle中看到它正常工作并玩弄它: http://www.jsfiddle.net/WzNM4/1/