小编web*_*lse的帖子

当光标位于屏幕的顶部或底部边缘时,如何使用JQuery/Javascript向下滚动页面?

很简单,我只想这样,当用户拖动一个项目并且它们到达视口的最底部或顶部(10px左右)时,页面(大约3000px长)轻轻向下或向上滚动,直到它们移动他们的光标(以及被拖动的项目)离开该区域.

项是一个li标签,它使用jquery使列表项可拖动.再具体一点:

我目前使用window.scrollBy(x = 0,y = 3)滚动页面并具有以下变量:

  1. e.pageY ...提供页面上光标的绝对Y坐标(不是相对于屏幕)
  2. $ .scrollTop()...提供页面顶部的偏移量(当滚动条一直向上时,它为0)
  3. $ .height()...提供用户浏览器/视口中可视区域的高度
  4. body.offsetHeight ...整个页面的高度

我怎样才能实现这一目标以及最适合这种情况的事件(目前在鼠标悬停中)?我的想法:

  1. 使用if/else检查它是在顶部区域还是在底部,如果e.pageY显示它在顶部则向上滚动,如果e.page&在底部则向下滚动,然后调用$('li') .mouseover()事件迭代...
    1. 使用do while循环......实际上这种方法效果不错,但很难停止滚动到远处.但我不知道如何控制迭代....

我的最新尝试:

          ('li').mouseover(function(e) {

            totalHeight = document.body.offsetHeight;
            cursor.y = e.pageY;
            var papaWindow = window;
            var $pxFromTop = $(papaWindow).scrollTop();
            var $userScreenHeight = $(papaWindow).height();
            var iterate = 0;

            do {
                papaWindow.scrollBy(0, 2);
                iterate++;
                console.log(cursor.y, $pxFromTop, $userScreenHeight);
            }

            while (iterate < 20);
      });
Run Code Online (Sandbox Code Playgroud)

javascript jquery scroll draggable viewport

14
推荐指数
1
解决办法
9784
查看次数

标签 统计

draggable ×1

javascript ×1

jquery ×1

scroll ×1

viewport ×1