我們再回到要實現的交互效果上,現在還有其他一些問題需要來解決: 1. 頁面字體到底是放大還是縮小呢? ==> 鼠標滾輪是向上滾動還是向下滾動呢? 2. 頁面字體縮放的倍數到底是多少呢? ==> 鼠標滾輪滾動的幅度大小是多少呢? 還好,我們可以通過 event 的某些屬性值得到這些信息: 1. “mousewheel” 事件中的 “event.wheelDelta” 屬性值:返回的值,如果是正值說明滾輪是向上滾動,如果是負值說明滾輪是向下滾動;返回的值,均為 120 的倍數,即:幅度大小 = 返回的值 / 120。 2. “DOMMouseScroll” 事件中的 “event.detail” 屬性值:返回的值,如果是負值說明滾輪是向上滾動(與 “event.wheelDelta” 正好相反),如果是正值說明滾輪是向下滾動;返回的值,均為 3 的倍數,即:幅度大小 = 返回的值 / 3。 3. “mousewheel” 事件在 Opera 10+ 中卻是個特例,既有 “event.wheelDelta” 屬性,也有 “event.detail” 屬性。 注:上面第三點,在《The onmousewheel event of JavaScript》一文中有這樣一段批注: 復制代碼 代碼如下: In Opera, “detail” returns the same value as it does in FF, so for the big O you should rely on “detail” instead of “wheelDelta”, which depending on the Opera version may return a different value than in IE's.