jQuery ScrollTop激活Scroll监听器

时间:2012-10-06 20:25:09

标签: jquery

我使用jquery滚动条一次移动一个面板(参见http://jsfiddle.net/kxWGU/1/),我遇到了一些奇怪的问题。

每次滚动时,它会同时滚动多个面板,并且永不停止。

似乎滚动动画会导致滚动探测器触发。

这是jquery脚本:

jQuery(document).ready(function($){
    var prevScrollTop = 0;
    var $scrollDiv    = jQuery('div#container');
    var $currentDiv   = $scrollDiv.children('div:first-child');

    var $sectionid    = 1;
    var $numsections  = 5;

    $scrollDiv.scroll(function(eventObj)
    {
        var curScrollTop = $scrollDiv.scrollTop();
        if (prevScrollTop < curScrollTop)
        {
        // Scrolling down:
            if ($sectionid+1 > $numsections) {
                console.log("End Panel Reached");
            }
            else {
                $currentDiv = $currentDiv.next().scrollTo();
                console.log("down");
                console.log($currentDiv);
                $sectionid=$sectionid+1;
                console.log($currentDiv.attr('id'));
                var divid =$currentDiv.attr('id');
                jQuery('#container').animate({scrollTop:jQuery('#'+divid).position().top}, 'slow');
                stop();
                }
        }
        else if (prevScrollTop > curScrollTop)
        {
        // Scrolling up:
            if ($sectionid-1 == 0) {
                console.log("Top Panel Reached");
            }
            else {
                $currentDiv = $currentDiv.prev().scrollTo();
                console.log("up");
                console.log($currentDiv);
                $sectionid=$sectionid-1;
                var divid =$currentDiv.attr('id');
                jQuery('#container').animate({scrollTop:jQuery('#'+divid).position().top}, 'slow');
                stop();
                }
        }
        prevScrollTop = curScrollTop;
    });
});​

有什么想法吗?

0 个答案:

没有答案