微信小程式 滑動手勢處理

2021-10-01 19:57:09 字數 2162 閱讀 5916

3. 測試滑動

題外話:

其實也就是判斷到底是上下左右哪個方向的滑動啦。

話說,我寫這個的時候,到底是滑動,還是划動,這兩個詞糾結了好久~

繫結三個事件:touchstarttouchendtouchcancel,分別對應三個函式:touchstarttouchendtouchcancel

style

="width

:100%;

height

:100%;"

bind:touchstart

="touchstart"

bind:touchend

="touchend"

bind:touchcancel

="touchcancel"

>

view

>

2.1 在page外部,定義引數和變數;
var minoffset =30;

//最小偏移量,低於這個值不響應滑動處理

var mintime =60;

// 最小時間,單位:毫秒,低於這個值不響應滑動處理

var startx =0;

//開始時的x座標

var starty =0;

//開始時的y座標

var starttime =0;

//開始時的毫秒數

如圖:

2.2 觸控開始事件,初始化startx、starty和starttime;

這裡主要是在手指剛觸控的螢幕的時候,獲取最初的x、y座標。我們把這個當做初始座標。

/**

* 觸控開始事件,初始化startx、starty和starttime

*/touchstart:

function

(e),

2.3 觸控取消事件

當觸控事件被取消中斷的時候,要重置startxstartystarttime三個的數值。

/**

* 觸控取消事件 (手指觸控動作被打斷,如來電提醒,彈窗),要將startx、starty和starttime重置

*/touchcancel:

function

(e),

2.4 觸控結束事件,主要的判斷在這裡;
注:這裡注釋較多,為了便於理解,強迫症可以刪掉。

簡單畫了個分析手勢型別的**,便於理解。

圖示名稱

條件1(偏移量x或者y要大於最小偏移量)

條件2(可以判斷出是左右滑動還是上下滑動)

條件3(判斷偏移量的正負)←左劃

math.abs(偏移量 )>= minoffset

math.abs(x偏移量) > math.abs(y偏移量)

x偏移量 < 0→右劃

同上同左劃

x偏移量 > 0↑上劃

同上math.abs(x偏移量) < math.abs(y偏移量)

y偏移量 < 0↓下劃

同上同上劃

y偏移量 > 0

js**如下:

/**

* 觸控結束事件,主要的判斷在這裡

*/touchend:

function

(e)else

}else

if(math.

abs(xoffset)

< math.

abs(yoffset)

&& math.

abs(yoffset)

>= minoffset)

else}}

else

},

如圖:

嘗試滑動,檢視控制台。

微信小程式手勢滑動卡片案例

效果圖 首先是卡片布局的實現 一 如圖所示,我採用絕對定位absolute的方式,輔助index,可以實現卡片的層疊效果。注意 三張卡片一定都是相同的定位,否則index可能不起作用。設定position absolute left 50 後,再 margin left 負 一半的width 可以實...

微信小程式手勢滑動卡片案例

效果圖 一 如圖所示,我採用絕對定位absolute的方式,輔助index,可以實現卡片的層疊效果。注意 三張卡片一定都是相同的定位,否則index可能不起作用。設定position absolute left 50 後,再 margin left 負 一半的width 可以實現水平居中 同理,設定...

微信小程式手勢滑動卡片案例

效果圖 首先是卡片布局的實現 一 如圖所示,我採用絕對定位absolute的方式,輔助index,可以實現卡片的層疊效果。注意 三張卡片一定都是相同的定位,否則index可能不起作用。設定position absolute left 50 後,再 margin left 負 一半的width 可以實...