Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery scrollTop()是如何工作的_Jquery_Scrolltop - Fatal编程技术网

Jquery scrollTop()是如何工作的

Jquery scrollTop()是如何工作的,jquery,scrolltop,Jquery,Scrolltop,我正在尝试如何在表格上下滚动,这段代码奏效了 $('.scroll-down').click(function() { $('.tableholder').animate({ scrollTop: $('.tableholder').scrollTop() + 10 }); }); $('.scroll-top').click(function() { $('.tableholder').animate({ scrollTop: $(

我正在尝试如何在表格上下滚动,这段代码奏效了

$('.scroll-down').click(function() { 
    $('.tableholder').animate({ 
       scrollTop: $('.tableholder').scrollTop() + 10
    });
});
 $('.scroll-top').click(function() { 
    $('.tableholder').animate({ 
       scrollTop: $('.tableholder').scrollTop() - 10
    });
});
这是小提琴


可以给出什么解释来解释为什么scrollTop以这种方式工作?

代码从字面上解释了它自己。它做了一些你没有预料到的事情,还是你期望它做一些不同的事情?如果是,请详细说明,以便我们能够提供更好的解释

$('.tableholder').scrollTop()+10
=获取当前scrollTop位置,添加10px

$('.tableholder').scrollTop()-10
=获取当前scrollTop位置,移除10px


然后,animate函数将
scrollTop
值设置为新位置的动画,该位置由上述代码确定。

当您单击
向下滚动
按钮时,
$('.tableholder')。scrollTop()的值为0,并且在事件发生后,其值更改为0+10=10

接下来,如果单击
滚动顶部
按钮,
$('.tableholder')。滚动顶部()的值这次将为10,并且在事件发生后,其值更改为10-10=0

这就是它是如何上下起伏的

要使代码更快更好,可以执行以下操作:

var $tableholder = $('.tableholder');
$('.scroll-down').click(function () {
    $tableholder.stop().animate({
        scrollTop: $tableholder.scrollTop() + 10
    });
});
$('.scroll-top').click(function () {
    $tableholder.stop().animate({
        scrollTop: $tableholder.scrollTop() - 10
    });
});

有什么问题?但是我们有api文档-->我认为它工作正常,请参见