關於這三個移動端的事件,詳細的資料網上一搜一大片,我就不浪費時間了 1.移動端長按事件 說明:通過定時器模擬長按事件,這個例子基於jQuery,【ele】是要長按的元素; 2.移動端上下左右滑動事件 說明:具體原理一搜一堆,這裡的具體例子,拷貝就能用;我的學習方式是,不管什麼原理之類的,先要做的就是 ...
關於這三個移動端的事件,詳細的資料網上一搜一大片,我就不浪費時間了
1.移動端長按事件
var timer = null; $(ele).on('touchstart',function(){ timer = setTimeout(function(){ alert("我是長按事件!") },800); }); $(ele).on('touchend',function(){ clearTimeout(timer); });
說明:通過定時器模擬長按事件,這個例子基於jQuery,【ele】是要長按的元素;
2.移動端上下左右滑動事件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"> <title>touch</title> </head> <body> <div id="touchLR">動起來</div> <script> // 左右滑動事件 var startX = 0, startY = 0; function touchSatrtFunc(evt) { try { evt.preventDefault(); //阻止觸摸時瀏覽器的縮放、滾動條滾動等 var touch = evt.touches[0]; //獲取第一個觸點 var x = Number(touch.pageX); //頁面觸點X坐標 var y = Number(touch.pageY); //頁面觸點Y坐標 //記錄觸點初始位置 startX = x; startY = y; } catch (e) { alert('touchSatrtFunc:' + e.message); } } function touchMoveFunc(evt) { try { evt.preventDefault(); //阻止觸摸時瀏覽器的縮放、滾動條滾動等 var touch = evt.touches[0]; //獲取第一個觸點 var x = Number(touch.pageX); //頁面觸點X坐標 var y = Number(touch.pageY); //頁面觸點Y坐標 var text; //判斷滑動左右方向 if (x - startX>=30) { text = '向右滑動'; document.getElementById('touchLR').innerHTML = text; }else if(x - startX<=-30){ text = '向左滑動'; document.getElementById('touchLR').innerHTML = text; } //判斷滑動上下方向 if (y - startY>=30) { text = '向下滑動'; document.getElementById('touchLR').innerHTML = text; }else if(y - startY<=-30){ text = '向上滑動'; document.getElementById('touchLR').innerHTML = text; } } catch (e) { alert('touchMoveFunc:' + e.message); } } function bindEvent() { document.addEventListener('touchstart', touchSatrtFunc, false); document.addEventListener('touchmove', touchMoveFunc, false); } bindEvent(); </script> </body> </html>
說明:具體原理一搜一堆,這裡的具體例子,拷貝就能用;我的學習方式是,不管什麼原理之類的,先要做的就是把需求弄出來,在捉摸原理;事半功倍