今天在網上找來了響應滾輪的函數並改寫成下面的類
複製代碼 代碼如下:function wheelEvent(obj, handle)
{
this.handle = handle;
// different events between Firefox and IE
window.addEventListener ? obj.addEventListener("DOMMouseScroll", this.wheel, false) : (obj.onmousewheel = this.wheel);
}
wheelEvent.prototype.wheel = function (event)
{
var ev = event || window.event;
var delta = ev.wheelDelta ? (ev.wheelDelta / 120) : (- ev.detail / 3); // Firefox using `wheelDelta` IE using `detail`
eval ('delta ? ' + parent.handle + '(delta) : null;');
}
在使用的時候需要定義一個執行函數,用以根據從上述類中獲得的值進行操作,並為指定的網頁元素添加事件。比如複製代碼 代碼如下:function handle(delta)
{
document.getElementById('text').scrollTop -= delta * 20;
}
new wheelEvent(document.getElementById('text'), 'handle');
在上例中第一個參數是添加滾輪事件的網頁元素, id 為 text 的 div;第二個參數是執行函數的名字 handle。
其中 handle 函數必須有且只有一個參數delta,滾輪往上滾時 delta 大於 0,往下則小於 0。上例 handle 函數的作用是用滾輪對 div 實現捲軸的功能