基于主体的垂直滚动模拟元素上的鼠标移动

时间:2014-02-13 22:51:40

标签: javascript jquery

我有一个可以通过jQueryUI拖动的元素。我正在使用它来进行下拉以刷新交互。

我想要完成的是当用户滚动到窗口/正文的顶部,但尝试进一步滚动,然后根据用户向上滚动的距离,此元素(#main)是往下拖。

我计划如何将其向下拖动是通过模拟.mousedown()以及.mousemove()和`.mouseup()事件来实现的,这些事件似乎有效(意味着它们会触发拖动)。

以下是我认为应该在某些实际/某些伪代码中起作用的内容:

$(window).on('scroll', function(){
    if($(this).scrollTop() === 0){

        if(extra movement beyond scrollTop 0){
             $('#main').mousedown();
             //move #main down number of pixels of extra movement / extra scroll up.
             $('#main').mouseup();   
        }
    } 
});

1 个答案:

答案 0 :(得分:1)

您可以通过以下方式获取滚动位置:

if($("body").scrollTop() === 0)
{
   //do your stuff
}

scrollTop()函数将px编号从页面滚动位置返回到激活它的元素的顶部(在上面的示例中 - 在body标记上)。

这是example

如果你需要获得滚动的增量,你会发现this SO有帮助。