本文實(shí)例講述了JS手機(jī)端touch事件計(jì)算滑動(dòng)距離的方法。分享給大家供大家參考,具體如下:
計(jì)算手勢(shì)在手機(jī)屏幕上滑動(dòng)時(shí),手勢(shì)滑動(dòng)的距離,代碼如下:
function wetherScroll(){ var startX = startY = endX =endY =0; var body=document.getElementsByTagName("body"); body.bind('touchstart',function(event){ var touch = event.targetTouches[0]; //滑動(dòng)起點(diǎn)的坐標(biāo) startX = touch.pageX; startY = touch.pageY; // console.log("startX:"+startX+","+"startY:"+startY); }); body.bind("touchmove",function(event){ var touch = event.targetTouches[0]; //手勢(shì)滑動(dòng)時(shí),手勢(shì)坐標(biāo)不斷變化,取最后一點(diǎn)的坐標(biāo)為最終的終點(diǎn)坐標(biāo) endX = touch.pageX; endY = touch.pageY; // console.log("endX:"+endX+","+"endY:"+endY); }) body.bind("touchend",function(event){ var distanceX=endX-startX, distanceY=endY - startY; // console.log("distanceX:"+distanceX+","+"distanceY:"+distanceY); //移動(dòng)端設(shè)備的屏幕寬度 var clientHeight; =document.documentElement.clientHeight; // console.log(clientHeight;*0.2); //判斷是否滑動(dòng)了,而不是屏幕上單擊了 if(startY!=Math.abs(distanceY)){ //在滑動(dòng)的距離超過屏幕高度的20%時(shí),做某種操作 if(Math.abs(distanceY)>clientHeight*0.2){ //向下滑實(shí)行函數(shù)someAction1,向上滑實(shí)行函數(shù)someAction2 distanceY <0 ? someAction1():someAction2(); } } startX = startY = endX =endY =0; }) }
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript事件相關(guān)操作與技巧大全》、《JavaScript操作DOM技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com