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