国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

js移動端事件基礎及常用事件庫詳解

2024-05-06 15:12:54
字體:
來源:轉載
供稿:網友

一、事件基礎

PC:click、mouseover、mouseout、mouseenter、mouseleave、mousemove、mousedown、mouseup、mousewheel、keydown、keyup、load、scroll、blur、focus、change...

移動端:click(單擊)、load、scroll、blur、focus、change、input(代替keyup、keydown)...TOUCH事件模型(處理單手指操作)、GESTURE事件模型(處理多手指操作)

TOUCH:touchstart、touchmove、touchend、touchcancel

GESTURE:gesturestart、gesturechange、gestureend

1、click:在移動端click屬于單擊事件,不是點擊事件,在移動端的項目中我們經常會區分單擊做什么和雙擊做什么,所以移動端的瀏覽器在識別click的時候,只有確定是單擊后才會把它執行:

在移動端使用click會存在300ms的延遲:瀏覽器在第一次點擊結束后,還需要等到300ms看是否觸發了第二次點擊,如果觸發了第二次點擊就不屬于click了,沒有觸發第二次點擊才屬于click

下面代碼是移動端模擬click時間的代碼

function on(curEle,type,fn){   curEle.addEventListener(type,fn,false);  }  var oBox = document.querySelector('.box');  //移動端采用click存在300ms延遲  // oBox.addEventListener('click',function(){  //  this.style.webkitTransform = 'rotate(360deg)'  // },false)  //使用TOUCH事件模型實現點擊操作(單擊&&雙擊)  on(oBox,'touchstart',function(ev){   //ev:TouchEvent事件 屬性 type、target、preventDefault(returnValue)、stopPropagation、changedTouches、touches   //changedTouches和touches都是手指信息的集合(touchList),touches獲取到值的必要條件只有手指還在屏幕上才可以獲取,所以在touchend事件中如果想獲取手指離開的瞬間坐標只能使用changedTouches獲取   var point = ev.touches[0];   this['strX'] = point.clientX;   this['strY'] = point.clientY;   this['isMove'] = false;  })  on(oBox,'touchmove',function(ev){   var point = ev.touches[0];   var newX = point.clientX,    newY = point.clientY;   //判斷是否發生滑動,我們需要判斷偏移的值是否在30PX以內   if(Math.abs(newX-this['strX'])>30 || Math.abs(newY-this['strY'])>30){    this['isMove'] = true;   }  })  on(oBox,'touchend',function(ev){   if(this['isMove'] === false){    //沒有發生移動 點擊    this.style.webkitTransitionDuration = '1s';    this.style.webkitTransform = 'rotate(360deg)';    var delayTimer = window.setTimeout(function(){     this.style.webkitTransitionDuration = '0s';     this.style.webkitTransform = 'rotate(0deg)';    }.bind(this),1000);   }else{    //滑動    this.style.background = 'red';   }  })

同時也可以使用fastclick.js來解決移動端click事件的300ms延遲 (github地址https://github.com/zhouxiaotian/fastclick)

2、點擊、單擊、雙擊、長按、滑動、左滑、右滑、上滑、下滑

單擊和雙擊(300MS)

點擊和長按(750MS)

點擊和滑動(X/Y軸偏移的距離是否在30PX以內,超過30PX就是滑動)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 海原县| 许昌县| 清原| 茌平县| 绿春县| 长丰县| 合川市| 南通市| 台中县| 黄梅县| 普安县| 都江堰市| 阜新| 喀喇| 屏山县| 凤翔县| 郴州市| 苏尼特左旗| 邹平县| 洱源县| 巩义市| 江北区| 依安县| 达拉特旗| 黑龙江省| 浦北县| 贡嘎县| 法库县| 昌图县| 阳曲县| 芮城县| 南投县| 项城市| 寻乌县| 乌拉特中旗| 金寨县| 苍梧县| 聂荣县| 铁岭县| 科尔| 淮滨县|