05移動端事件
阿新 • • 發佈:2017-08-25
函數 就會 star 操作 col 位置信息 prev 菜單 當前 一、移動端三大事件
1、手指按下 ontouchstart
2、手指觸摸 ontouchmove
3、手指擡起 ontouchend
//註意:在移動開發時,瀏覽器模擬器時好時壞,一般不用onX的方式綁定事件函數,要用事件綁定的方式(即第二種) div.ontouchstart = function(){}; div.addEventListener(‘touchstart‘, function(){});二、PC端事件在移動端(出現的問題) 1、PC端事件在移動端略慢,大概300ms左右 2、阻止PC事件
document.addEventListener(‘touchstart‘, function作用與問題: 1、移動端的點透 問題:當上層元素發生點擊時,下層元素也有點擊特性。300ms之後,如果上層元素消失或隱藏,目標點會“漂移”到下層元素身上,就會觸發點擊行為 解決:法1. 下層不要使用有焦點特性的元素(如a或者其他有點擊行為的元素) 法2. 阻止PC事件(ev){ ev.preventDefault(); });
document.addEventListener(‘touchstart‘, function(ev){ ev.preventDefault(); }); p.addEventListenr(2、解決IOS10下meta中禁止用戶縮放功能 3、解決IOS10下溢出隱藏問題 4、禁止系統默認的滾動條 5、禁止長按選中文字、圖片,系統默認菜單 6、問題:阻止了元素的焦點行為‘touchstart‘, function(){ //這邊click 改為 touchstart alert(111); });
//解決方法(解決因為document的阻止事件導致的 input 框不能觸焦問題) txt.addEventListenr(‘touchstart‘, function三、移動端事件對象(當給某元素加上綁定事件函數之後,事件函數默認第一個參數就是事件對象。事件對象:用戶在瀏覽器下觸發某個行為,事件對象會記錄用戶操作時的相關細節(如位置信息等)) 1、touches:當前位於 屏幕(包括dom元素之外) 上的所有手指的列表 2、targetTouches:位於當前 DOM 元素上(當前dom元素之外的無法獲取)的手指的列表 3、changedTouches:涉及當前事件的手指的一個列表 例子:移動端無縫輪播切換(ev){ ev.stopPropagation(); });
05移動端事件