Javascript 鼠标移动时滚动窗口
大家好Javascript 鼠标移动时滚动窗口,javascript,scroll,mouse,acceleration,Javascript,Scroll,Mouse,Acceleration,大家好我的意思是,当鼠标向窗口边缘移动(x或y或两者)时,我希望页面滚动,当鼠标停止移动时,我希望页面停止滚动。有许多示例说明如何使用onClick事件或窗口边缘的滚动区域进行滚动,但这并不是基于鼠标光标的移动 任何帮助都将不胜感激。网页已经设计为使用滚动条、页面/主页/结束/箭头键等进行滚动。是否有任何原因不适合您的页面?改变预期的功能通常不是一个好主意 你可以在这里了解这件事。无论如何,下面的代码应该可以工作,但我真的不建议使用它。对于有敏感老鼠的人来说,它尤其会使人迷失方向: // Var
我的意思是,当鼠标向窗口边缘移动(x或y或两者)时,我希望页面滚动,当鼠标停止移动时,我希望页面停止滚动。
有许多示例说明如何使用onClick事件或窗口边缘的滚动区域进行滚动,但这并不是基于鼠标光标的移动
任何帮助都将不胜感激。网页已经设计为使用滚动条、页面/主页/结束/箭头键等进行滚动。是否有任何原因不适合您的页面?改变预期的功能通常不是一个好主意 你可以在这里了解这件事。无论如何,下面的代码应该可以工作,但我真的不建议使用它。对于有敏感老鼠的人来说,它尤其会使人迷失方向:
// 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;
完美的非常感谢。是的,你是对的,更改预期的功能不是很好,但是这个页面类似于一个画廊的墙,所以“看你指的地方”的功能是一个很好的效果。为了减少“抽搐”(可能还会增加一些加速度),我最好添加一些缓和效果。这是可能的吗?当然,您可以将
var diffX=e.clientX-x
存储在一个变量中,然后检查如果(Math.abs(diffX)>1
或其他,您可以将其除以2以降低敏感度,等等。您真正需要知道的是窗口。scrollBy
将通过提供的x
和y
参数滚动窗口。