Javascript 如何制作垂直滑梯

Javascript 如何制作垂直滑梯,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我想在按住鼠标的同时,像触摸屏或滚动条一样上下滑动。但问题是,我需要能够在点击它并移动鼠标的同时做到这一点,并且仍然能够像点击链接一样点击它下面的东西,因为它不是图像。 我什么都找不到。有人能告诉我关于jquery插件或css技巧之类的吗?好的。。。所以,听起来你想在按住鼠标键的同时滚动一个网站。这需要一些工作才能在实际场景中发挥作用。它导致项目被选中,它不考虑动量,等等 这是三个事件的结果: 'mousemove':始终跟踪当前鼠标位置(垂直方向),即使未按下鼠标按钮。这意味着,无论何时移动鼠

我想在按住鼠标的同时,像触摸屏或滚动条一样上下滑动。但问题是,我需要能够在点击它并移动鼠标的同时做到这一点,并且仍然能够像点击链接一样点击它下面的东西,因为它不是图像。
我什么都找不到。有人能告诉我关于jquery插件或css技巧之类的吗?

好的。。。所以,听起来你想在按住鼠标键的同时滚动一个网站。这需要一些工作才能在实际场景中发挥作用。它导致项目被选中,它不考虑动量,等等

这是三个事件的结果:

'mousemove':始终跟踪当前鼠标位置(垂直方向),即使未按下鼠标按钮。这意味着,无论何时移动鼠标,事件都会持续激发,但它所做的只是更改单个变量,以便将性能损失降至最低。您可以对事件的添加和删除进行微观管理,但这是一个令人头痛的问题(特别是如果您想跟踪鼠标进行多项操作)

'mousedown':设置标志以声明滚动已开始,注意鼠标现在的位置,并将动画排队等待下一帧处理

'mouseup':删除mousedown事件设置的标志,以便下一帧动画是该批滚动的最后一帧

无论鼠标左键还是右键被触发,
scrollStart()
scrollStop()
都将触发。您可以将它们更改为
scrollStart(e)
scrollStop(e)
。然后,您可以检查每个函数中的
e.按钮
,查看它是左、右还是滚轮,滚轮分别返回
0
2
1

除了这三个事件,这只是动画逻辑。每一帧,查看鼠标移动的距离,并将该偏移(+或-)添加到文档的当前滚动位置

documentScrollTop()
获取文档的当前滚动位置。感谢Mikeross提供的跨浏览器polyfill

窗口。滚动到(左,上)
实际执行滚动

// ScrollTop polyfill from TheMikeRoss
// Lets you know how much 
function documentScrollTop() {
  "use strict";
  return (document.documentElement.scrollTop + document.body.scrollTop
  === document.documentElement.scrollTop) ?
      document.documentElement.scrollTop : document.body.scrollTop;
};

function scrollStart() {
  "use strict";
  window.bIsScrolling = true;
  window.lastMousePosition = window.mousePosition;
  window.requestAnimationFrame(drawScroll);
};

function scrollStop() {
  "use strict";
  window.bIsScrolling = false;
};

function scrollOnMove(e) {
  "use strict";
  window.mousePosition = e.clientY;
};

function drawScroll() {
  "use strict";
  var scrollDistance,
    scrollLocation;

  if (window.bIsScrolling) {
    //Mouse still held down, keep scrolling
    window.requestAnimationFrame(drawScroll);
  }

  scrollDistance = window.lastMousePosition - window.mousePosition;
  scrollLocation = window.documentScrollTop() + scrollDistance;
  window.scrollTo(0, scrollLocation);
  window.lastMousePosition = window.mousePosition;
};

window.addEventListener('mousedown', scrollStart, false);
window.addEventListener('mouseup', scrollStop, false);
window.addEventListener('mousemove', scrollOnMove, false);

这真的很令人困惑。如果你澄清,找到答案的机会会更好。想想滚动条的作用吧。基本上,我想要这个功能,但没有一个酒吧,只需点击并向下拖动,就像你在触摸手机上做的那样简单。使用向上和向下的方向,您想使用滑动或类似的方式浏览网页的全屏部分吗?而且这种滑动不会触发该页面上的链接。这是触摸事件的工作,它们可以与点击分开。可行,但不是一个简单的技巧,只有一些坚实的编码。下面是我手头上最接近、最不复杂的例子:。