国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 開發(fā) > HTML5 > 正文

鼠標(biāo)滾輪事件和Mac觸控板雙指事件

2024-09-05 07:23:12
字體:
供稿:網(wǎng)友

因?yàn)橄乱浑A段要做的一個(gè)工作是開發(fā)一個(gè)WEB端的K線圖,所以這一周一直在研究這方面的東西,其中涉及到的一個(gè)知識(shí)點(diǎn)是鼠標(biāo)滾輪事件和Mac的觸控板雙指事件,發(fā)現(xiàn)這里面還是有一些坑的。

1. 用哪個(gè)事件

The wheel event fires when the user rotates a wheel button on a pointing device (typically a mouse). This event replaces the non-standard deprecated mousewheel event.

以前常使用的mousewheel事件已經(jīng)逐漸被官方廢棄了,改用wheel事件代替,所以這里會(huì)優(yōu)先使用wheel,并向下兼容。

另外,即使是wheel事件,各瀏覽器的表現(xiàn)也可能不盡相同,都是各大瀏覽器自己的規(guī)范,官方并沒有一個(gè)標(biāo)準(zhǔn),雖然我也不知道為什么。

2. 兼容寫法

// creates a global "addWheelListener" method// example: addWheelListener( elem, function( e ) { console.log( e.deltaY ); e.preventDefault(); } );(function(window,document) {    var prefix = "", _addEventListener, onwheel, support;    // detect event model    if ( window.addEventListener ) {        _addEventListener = "addEventListener";    } else {        _addEventListener = "attachEvent";        prefix = "on";    }    // detect available wheel event    support = "onwheel" in document.createElement("div") ? "wheel" : // 各個(gè)廠商的高版本瀏覽器都支持"wheel"              document.onmousewheel !== undefined ? "mousewheel" : // Webkit 和 IE一定支持"mousewheel"              "DOMMouseScroll"; // 低版本firefox    window.addWheelListener = function( elem, callback, useCapture ) {        _addWheelListener( elem, support, callback, useCapture );        // handle MozMousePixelScroll in older Firefox        if( support == "DOMMouseScroll" ) {            _addWheelListener( elem, "MozMousePixelScroll", callback, useCapture );        }    };    function _addWheelListener( elem, eventName, callback, useCapture ) {        elem[ _addEventListener ]( prefix + eventName, support == "wheel" ? callback : function( originalEvent ) {            !originalEvent && ( originalEvent = window.event );            // create a normalized event object            var event = {                // keep a ref to the original event object                originalEvent: originalEvent,                target: originalEvent.target || originalEvent.srcElement,                type: "wheel",                deltaMode: originalEvent.type == "MozMousePixelScroll" ? 0 : 1,                deltaX: 0,                deltaZ: 0,                preventDefault: function() {                    originalEvent.preventDefault ?                        originalEvent.preventDefault() :                        originalEvent.returnValue = false;                }            };                        // calculate deltaY (and deltaX) according to the event            if ( support == "mousewheel" ) {                event.deltaY = - 1/40 * originalEvent.wheelDelta;                // Webkit also support wheelDeltaX                originalEvent.wheelDeltaX && ( event.deltaX = - 1/40 * originalEvent.wheelDeltaX );            } else {                event.deltaY = originalEvent.detail;            }            // it's time to fire the callback            return callback( event );        }, useCapture || false );    }})(window,document);

這個(gè)是MDN 上推薦的兼容寫法,可以看到這幾個(gè)事件的順序是 wheel > mousewheel > DOMMouseScroll。如果使用wheel事件,event不做處理。否則,重新封裝了event。

3. 方向判斷

鼠標(biāo)滾輪的話,只有上、下兩個(gè)方向,但是如果是觸摸板的雙指行為的話,除了上、下以外,還有左、右方向,以及雙指向內(nèi)收縮、向外擴(kuò)張四種情況,接下來,就對(duì)這幾種情況做判斷處理。
 

function wheelEvent (e) {    if (Math.abs(e.deltaX) !== 0 && Math.abs(e.deltaY) !== 0) return console.log('沒有固定方向');    if (e.deltaX < 0) return console.log('向右');    if (e.deltaX > 0) return console.log('向左');    if (e.ctrlKey) {        if (e.deltaY > 0) return console.log('向內(nèi)');        if (e.deltaY < 0) return console.log('向外');    } else {        if (e.deltaY > 0) return console.log('向上');        if (e.deltaY < 0) return console.log('向下');    }}

經(jīng)過測(cè)試,delta是用來判斷方向最好的一個(gè)值,wheelDelta和detail都有各自的兼容等問題。

deltaX是左右方向的滑動(dòng),deltaY是上下方向。

向里收縮是和向下滾動(dòng)相同,向外擴(kuò)張是和向上滾動(dòng)相同。這是正常的用戶習(xí)慣,但是麻煩的是事實(shí)剛好和我們的習(xí)慣相反,這樣單純依靠deltaY來判斷是區(qū)分不開的。

經(jīng)過測(cè)試ctrlKey這個(gè)字段只有在雙指方向不一致時(shí),才會(huì)為true。這樣就能區(qū)分開了,從而產(chǎn)生了6種情況,逐一處理。

所以上面的兼容寫法還需要將ctrlKey返回。

ctrlKey: originalEvent.ctrlKey || false,

這個(gè)問題解決了,之后會(huì)抽時(shí)間把K線圖的代碼整理一下。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产精品视频白浆合集| 国产成人精品综合网站| 精品欧美不卡一区二区在线观看| 天堂资源最新版在线视频观看免费网 | 国产精品麻豆一区二区三区| 国产三级在线| 亚洲91av| 中文字幕在线永久在线视频| 国产成人精品久久一区二区小说| 四虎a级欧美在线观看| 天堂中文在线视频| 影音av资源站| 综合图区亚洲白拍在线| 一级黄色av| 国产日韩精品在线看| 日本成人a视频| 导航福利在线| 在线三级av| a视频免费看| 1区2区3区在线| 97影院秋霞午夜在线观看| 亚洲欧美日韩综合精品网| 国产精品自拍亚洲| 在线黄色国产电影| 国产人成在线视频| 国产69精品久久app免费版| 国产www网站| 国产区在线视频| 高清在线观看av| 影音先锋中文字幕在线| 国产精品777一区二区| 国产免费麻豆视频| 免费看的毛片| 伊人av免费在线观看| 中文字幕色视频| 国产免费电影网站入口| 国产在线一二三区| 免费在线高清av| 免费看的毛片| 男女午夜视频在线观看| www.亚洲视频| www.色婷婷| www在线播放| 日本欧美在线视频免费观看| 亚洲人av在线| 免费精品国产自产拍观看| 日本一二三区视频免费高清| 在线国产福利网站| 精品日韩av| 亚洲男人的天堂成人| 欧美视频免费一区二区三区| 人人干在线视频| 九九热免费在线视频| 久久精品无码一区二区日韩av| 激情综合网五月激情| 国产亚洲精品久久久网站好莱| 国产香蕉免费精品视频| 国产精品自拍亚洲| 国产黄色av免费看| gogo高清在线播放免费| 国产中文在线观看| 国产精品美女一区二区三区四区 | 精品视频二区三区| 精品一二三四| 国产中文字幕在线视频| 国产精品第八页| 欧美日韩亚洲第一页| 国产在线www| 在线天堂av| 丁香视频五月| 亚洲日本伊人| 国产精品合集一区二区 | 亚洲午夜久久久久中文字幕| www.超级碰| 国产精品久久久久永久免费看| 中文资源在线网| 久草一本av| 四虎成人欧美精品在永久在线| 国产精品一区二区婷婷| 欧洲有码在线视频| 亚洲综合在线不卡| 国产黄a三级三级三级av在线看 | 六月天色婷婷| 91三级在线| 国产尤物视频在线| av中文在线资源| 国产a国产a国产a| 中文字幕日本三级| 蜜桃视频中文字幕| 亚洲欧美小说国产图片| 国产激情视频在线| 国产一级在线观看| 高清av中文在线字幕观看1| jlzzjlzz欧美大全| 夜夜操com| 精品视频三区| 国产高清免费av在线| japanese色国产在线看视频| 国产一二三区在线| 国产人成在线观看| 九九热在线视频观看| 亚洲激情丁香| 香蕉视频在线观看www| av网址在线播放| 丝袜理论片在线观看| 热99re久久精品这里都是免费| 69堂视频在线观看国产| 69av二区| 四虎成年永久免费网站| www狠狠操| 国产在线色视频| 国内自拍视频在线观看| 四虎一区二区三区| 九九热在线视频| 国产福利在线视频| 四虎成年永久免费网站| 国产美女高潮| 国产va在线| 天天干天天摸| 超碰免费在线观看| 欧美日韩性视频一区二区三区| 毛片在线视频| 亚洲综合色视频在线观看| 精精国产xxxx视频在线中文版| 亚洲精品天堂在线观看| 激情综合丁香| 狠狠狠综合7777久夜色撩人| 国产高清av| 国产在线中文字幕| 亚洲图区综合| 国产农村av| 中文天堂av| 激情四房婷婷| 2021av在线| 日本啊v在线| 国产精品国产国产aⅴ| 亚洲va国产日韩欧美精品色婷婷| 超碰在线网址| 亚洲图区欧美| 国产精品你懂的在线观看| 可以免费看污视频的网站| 国产成人精品男人的天堂538| 永久免费不卡在线观看黄网站| 大香伊人中文字幕精品| 99热国产在线| 最近中文字幕大全中文字幕免费| 影音av资源站| 精品国产白色丝袜高跟鞋| 国产资源在线看| a级片国产精品自在拍在线播放| 国产精品免费91| 国产人成网在线播放va免费| 狠狠干天天干| xxx国产精品| jlzzjlzz欧美| 91中文在线| 日本国产在线| eeuss影院www在线观看| 国产女王在线**视频| 亚洲日本伊人| 91av福利| 久热av在线| 超碰97国产精品人人cao| 99久久99久久免费精品小说| 国产精品久久人| 国产区高清在线| 精品福利影院| 亚洲wwwwww| 青青草免费观看免费视频在线| 四虎网站在线观看| 青青草在线播放| 九九精品九九| www.狠狠艹| 久久亚洲资源| 天天av综合网| 中文字幕毛片| 国产va在线| 青青国产在线| 中文字幕在线观看av| 国产精品人人爱一区二区白浆| 91九色在线看| 免费高清视频日韩| 国产亚av手机在线观看| 精品麻豆一区二区三区 | 五月天丁香在线| 久久久久国产精品嫩草影院| 天天噜天天色| 国产在线二区| 国产91大片| 精品视频二区三区| 免费不卡中文字幕视频| 国产视频二区三区| 免费看的av| 99福利在线| 国产香蕉视频在线看| 性网站在线看| 国产福利电影在线| 黄色免费av| 亚洲夜夜综合| 2019中文字幕视频|