5
全部你好
我的意思是当鼠标移向窗口边缘(x或y或两者)时,我希望页面滚动,当鼠标停止移动时,我希望页面停止滚动。
有许多基于在窗口边缘使用onClick事件或滚动区进行滚动的示例,但基于鼠标光标的移动并不多。当鼠标移动时的滚动窗口
任何帮助将不胜感激。
全部你好
我的意思是当鼠标移向窗口边缘(x或y或两者)时,我希望页面滚动,当鼠标停止移动时,我希望页面停止滚动。
有许多基于在窗口边缘使用onClick事件或滚动区进行滚动的示例,但基于鼠标光标的移动并不多。当鼠标移动时的滚动窗口
任何帮助将不胜感激。
网页已经设计成使用滚动条,页面/主页/结束/箭头键等进行滚动。是否有任何理由不足以满足您的页面?改变预期的功能通常不是一个好主意。
您可以在这里阅读mousemove
活动。无论如何,下面的代码应该工作,但我真的不建议使用它。对于敏感小鼠的人可能会特别迷失方向:
// Variables for current position
var x, y;
function handleMouse(e) {
// Verify that x and y already have some value
if (x && y) {
// Scroll window by difference between current and previous positions
window.scrollBy(e.clientX - x, e.clientY - y);
}
// Store current position
x = e.clientX;
y = e.clientY;
}
// Assign handleMouse to mouse movement events
document.onmousemove = handleMouse;
完美..谢谢。是的,你是正确的改变预期的功能不是很好,但这个页面类似于一个画廊的墙壁,所以“看你指向哪里”的功能是一个很好的效果。为了减少“抖动”(并且可能会加上一些加速),最好的做法是增加某种缓解效果。这可能吗? – kevin
当然,你可以将'var diffX = e.clientX - x'存储在一个变量中,然后检查'if(Math.abs(diffX)> 1)'或其他东西,你可以将它除以2以使事情变得不那么敏感等等。你真正需要知道的是'window.scrollBy'将通过提供的'x'和'y'参数来滚动窗口。 – brymck
Bryan ....非常好。谢谢! – kevin