Javascript jQuery滚动长度

Javascript jQuery滚动长度,javascript,jquery,scroll,Javascript,Jquery,Scroll,我正在使用脚本在单击时滚动元素。它工作正常,但它要么一直向上滚动,要么一直向下滚动。我是jquery的新手,我想知道如何让它一次滚动一点。例如,单击向下滚动一次将使您向下滚动一定长度,再次单击将再次滚动该长度。此外,有时它会在向上滚动时出现抖动和bug。任何关于如何解决这一问题的见解都值得赞赏 谢谢 代码如下: <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></sc

我正在使用脚本在单击时滚动元素。它工作正常,但它要么一直向上滚动,要么一直向下滚动。我是jquery的新手,我想知道如何让它一次滚动一点。例如,单击向下滚动一次将使您向下滚动一定长度,再次单击将再次滚动该长度。此外,有时它会在向上滚动时出现抖动和bug。任何关于如何解决这一问题的见解都值得赞赏

谢谢

代码如下:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
<script>
$(function() {
    var ele   = $('#scroll');
    var speed = 25, scroll = 5, scrolling;

   $('#scroll-up').click(function() {
        // Scroll the element up
        scrolling = window.setInterval(function() {
            ele.scrollTop( ele.scrollTop() - scroll );
        }, speed);
    });

    $('#scroll-down').click(function() {
        // Scroll the element down
        scrolling = window.setInterval(function() {
            ele.scrollTop( ele.scrollTop() + scroll );
        }, speed);
    });

    $('#scroll-up, #scroll-down').bind({
        click: function(e) {
            // Prevent the default click action
            e.preventDefault();
        },
        mouseleave: function() {
            if (scrolling) {
                window.clearInterval(scrolling);
                scrolling = false;
            }
        }
    });
});
</script>

$(函数(){
var ele=$('滚动');
变量速度=25,滚动=5,滚动;
$(“#向上滚动”)。单击(函数(){
//向上滚动元素
滚动=window.setInterval(函数(){
ele.scrollTop(ele.scrollTop()-scroll);
},速度);
});
$(“#向下滚动”)。单击(函数(){
//向下滚动元素
滚动=window.setInterval(函数(){
ele.scrollTop(ele.scrollTop()+scroll);
},速度);
});
$(“#向上滚动,#向下滚动”).bind({
点击:功能(e){
//阻止默认的单击操作
e、 预防默认值();
},
mouseleave:function(){
如果(滚动){
清除间隔(滚动);
滚动=假;
}
}
});
});

您的意思是希望一次滚动一点,但您的代码是滚动直到鼠标离开。如果你想一次滚动一点,为什么要写一个
mouseleave
,清楚地说明它是否一直在滚动,现在停止

如果您想在单击时向上/向下滚动一点,您应该去掉
setInterval
mouseleave

$(function() {
    var ele   = $('#scroll');
    var speed = 25, scroll = 5;

   $('#scroll-up').click(function() {
        // Scroll the element up
        ele.scrollTop( ele.scrollTop() - scroll );
    });

    $('#scroll-down').click(function() {
        ele.scrollTop( ele.scrollTop() + scroll );
    });

    $('#scroll-up, #scroll-down').bind({
        click: function(e) {
            // Prevent the default click action
            e.preventDefault();
        }
    });
});

如果取出setInterval函数,只留下这一行ele.scrollTop(ele.scrollTop()-scroll);它应该一次下降一点点。您的setInterval可能会在清除该线路之前多次调用该线路,因为您的速度设置为1秒以下。