javascript 鼠標(biāo)滾輪事件
更新時間:2009年04月09日 18:05:22 作者:
由于鼠標(biāo)滾輪事件在 IE 和 FF 的實現(xiàn)有點不一樣,所以有需要把這個寫成一個統(tǒng)一可用的事件。
今天在網(wǎng)上找來了響應(yīng)滾輪的函數(shù)并改寫成下面的類
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;');
}
在使用的時候需要定義一個執(zhí)行函數(shù),用以根據(jù)從上述類中獲得的值進(jìn)行操作,并為指定的網(wǎng)頁元素添加事件。比如
function handle(delta)
{
document.getElementById('text').scrollTop -= delta * 20;
}
new wheelEvent(document.getElementById('text'), 'handle');
在上例中第一個參數(shù)是添加滾輪事件的網(wǎng)頁元素, id 為 text 的 div;第二個參數(shù)是執(zhí)行函數(shù)的名字 handle。
其中 handle 函數(shù)必須有且只有一個參數(shù)delta,滾輪往上滾時 delta 大于 0,往下則小于 0。上例 handle 函數(shù)的作用是用滾輪對 div 實現(xiàn)滾動條的功能
復(fù)制代碼 代碼如下:
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;');
}
在使用的時候需要定義一個執(zhí)行函數(shù),用以根據(jù)從上述類中獲得的值進(jìn)行操作,并為指定的網(wǎng)頁元素添加事件。比如
復(fù)制代碼 代碼如下:
function handle(delta)
{
document.getElementById('text').scrollTop -= delta * 20;
}
new wheelEvent(document.getElementById('text'), 'handle');
其中 handle 函數(shù)必須有且只有一個參數(shù)delta,滾輪往上滾時 delta 大于 0,往下則小于 0。上例 handle 函數(shù)的作用是用滾輪對 div 實現(xiàn)滾動條的功能
相關(guān)文章
javascript驗證手機(jī)號和實現(xiàn)星號(*)代替實例
在我們?nèi)粘i_發(fā)中經(jīng)常要驗證客戶輸入的手機(jī)號是否正確,有的時候還需要將中間的四位或者前幾位用星號(*)代替,那該如何實現(xiàn)呢?下面跟著小編一起來看看。2016-08-08apply和call方法定義及apply和call方法的區(qū)別
apply和call功能一樣,只是傳入的參數(shù)列表形式不同,本文給大家介紹apply和call方法定義及apply和call方法的區(qū)別,感興趣的朋友一起學(xué)習(xí)吧2015-11-11Javascript代碼混淆綜合解決方案-Javascript在線混淆器
Javascript代碼混淆綜合解決方案-Javascript在線混淆器...2006-12-12uni-app調(diào)取接口的3種方式以及封裝uni.request()詳解
我們在實際工作中要將數(shù)據(jù)傳輸?shù)椒?wù)器端,從服務(wù)器端獲取信息,都是通過接口的形式,下面這篇文章主要給大家介紹了關(guān)于uni-app調(diào)取接口的3種方式以及封裝uni.request()的相關(guān)資料,需要的朋友可以參考下2022-08-08小程序如何在不同設(shè)備上自適應(yīng)生成海報的實現(xiàn)方法
這篇文章主要介紹了小程序如何在不同設(shè)備上自適應(yīng)生成海報的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08