第127天:移動端-獲取觸摸點的位置


一、移動端輪播圖滑動

1、先獲取手指在輪播圖元素上的滑動方向(左右)

(1)手指觸摸開始時記錄手指所在的坐標X
(2)獲取界面上的輪播圖容器

var $carousels=$('.carousel');
(3)注冊滑動事件
(4)變量重復賦值

(5)結束觸摸的一瞬間記錄最后手指所在坐標X
(6)比較開始和結束的坐標大小
(7)控制精度 獲取每次手指滑動的距離,當距離大於一定值時,就認為有方向變化

2、根據獲得到的方向選擇上一張或下一張

必須用$(this),若使用$carousels,當頁面中有多個輪播圖時,會一起動
 $(this).carousel(startX>endX?'next':'prev');

 

javascript代碼
 1   //移動端輪播圖滑動
 2 
 3     //1、先獲取手指在輪播圖元素上的滑動方向(左右)
 4     //手指觸摸開始時記錄手指所在的坐標X
 5 
 6     //獲取界面上的輪播圖容器
 7     var $carousels=$('.carousel');
 8     //注冊滑動事件
 9     var startX;
10     var endX;
11     var offset=50;
12     $carousels.on('touchstart',function(e){
13         startX=e.originalEvent.touches[0].clientX;
14         console.log(startX);
15     });
16 
17     //變量重復賦值
18     $carousels.on('touchmove',function(e){
19         endX=e.originalEvent.touches[0].clientX;
20         //console.log(endX);
21     });
22 
23     //結束觸摸的一瞬間記錄最后手指所在坐標X
24     //比較開始和結束的坐標大小
25      $carousels.on('touchend',function(e){
26      console.log(endX);
27          //控制精度
28          //獲取每次手指滑動的距離,當距離大於一定值時,就認為有方向變化
29          var distance=Math.abs(startX-endX);
30          if(distance>offset){
31              //有方向變化
32              //console.log(startX>endX?'-':'+');
33 
34              //2、根據獲得到的方向選擇上一張或下一張
35 
36              // $('a').click();
37              // 原生的carousel方法實現 手向左滑出現下一張
38              //此處必須用$(this),若使用$carousels,當頁面中有多個輪播圖時,會一起動
39              $(this).carousel(startX>endX?'next':'prev');
40 
41 
42 
43          }

 

二、移動端獲取觸摸點的方式說明

1. touchstart事件
       手指頭觸摸屏幕上的事件
2. touchmove
       手指頭在屏幕上滑動觸發的事件
3. touchend
        當手指從屏幕上離開的時候觸發
利用jquery配合使用方法如下:
$("#demoid").bind('touchstart',function(){ //代碼處理});
 
touchstart、touchmove、touchend三種事件下的鼠標位置點獲取:
(1) touchstart事件下獲取: e.originalEvent.targetTouches[0].pageX
說明:由於手指頭是多點觸摸到屏幕上的我們所以e.originalEvent.targetTouches的
意思是一個手指觸碰點集合我們只需要獲取第一個點就可以了所以
e.originalEvent.targetTouches[0],所以位置.pageX .pageY就ok了
(2) touchend事件的獲取: e3.originalEvent.changedTouches[0].pageX
 
下面是其他的一些介紹:
每個Touch對象包含的屬性如下。
clientX:觸摸目標在視口中的x坐標。
clientY:觸摸目標在視口中的y坐標。
identifier:標識觸摸的唯一ID。
pageX:觸摸目標在頁面中的x坐標。
pageY:觸摸目標在頁面中的y坐標。
screenX:觸摸目標在屏幕中的x坐標。
screenY:觸摸目標在屏幕中的y坐標。
target:觸目的DOM節點目標。   
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM