最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序左右滑動切換頁面詳解及實例代碼

 更新時間:2017年02月28日 16:42:33   作者:呂周坤  
這篇文章主要介紹了微信小程序左右滑動切換頁面詳解及實例代碼的相關資料,需要的朋友可以參考下

微信小程序——左右滑動切換頁面事件

微信小程序的左右滑動觸屏事件,主要有三個事件:touchstart,touchmove,touchend。

這三個事件最重要的屬性是pageX和pageY,表示X,Y坐標。

touchstart在觸摸開始時觸發(fā)事件;
touchend在觸摸結束時觸發(fā)事件;
touchmove觸摸的過程中不斷激發(fā)這個事件;

這三個事件都有一個timeStamp的屬性,查看timeStamp屬性,可以看到順序是touchstart => touchmove=> touchmove => ··· =>touchmove =>touchend。

第一步:在wxml文件中綁定事件(需要左右滑動的界面)

<view class="container" bindtouchstart="touchStart" bindtouchmove="touchMove" bindtouchend="touchEnd">
 // do something
</view>

第二步:在js文件中處理左右滑動邏輯

var touchDot = 0;//觸摸時的原點
var time = 0;// 時間記錄,用于滑動時且時間小于1s則執(zhí)行左右滑動
var interval = "";// 記錄/清理 時間記錄
var nth = 0;// 設置活動菜單的index
var nthMax = 5;//活動菜單的最大個數(shù)
var tmpFlag = true;// 判斷左右華東超出菜單最大值時不再執(zhí)行滑動事件

// 觸摸開始事件
touchStart:function(e){ 
  touchDot = e.touches[0].pageX; // 獲取觸摸時的原點
  // 使用js計時器記錄時間  
  interval = setInterval(function(){
    time++;
  },100); 
},
// 觸摸移動事件
touchMove:function(e){ 
  var touchMove = e.touches[0].pageX;
  console.log("touchMove:"+touchMove+" touchDot:"+touchDot+" diff:"+(touchMove - touchDot));
  // 向左滑動  
  if(touchMove - touchDot <= -40 && time < 10){
    if(tmpFlag && nth < nthMax){ //每次移動中且滑動時不超過最大值 只執(zhí)行一次
      var tmp = this.data.menu.map(function (arr, index) {
        tmpFlag = false;
        if(arr.active){ // 當前的狀態(tài)更改
          nth = index;
          ++nth;
          arr.active = nth > nthMax ? true : false;
        }
        if(nth == index){ // 下一個的狀態(tài)更改
          arr.active = true;
          name = arr.value;
        }
        return arr;
      })
      this.getNews(name); // 獲取新聞列表
      this.setData({menu : tmp}); // 更新菜單
    }
  }
  // 向右滑動
  if(touchMove - touchDot >= 40 && time < 10){
    if(tmpFlag && nth > 0){
      nth = --nth < 0 ? 0 : nth;
      var tmp = this.data.menu.map(function (arr, index) {
        tmpFlag = false;
        arr.active = false;
        // 上一個的狀態(tài)更改
        if(nth == index){
          arr.active = true;
          name = arr.value;
        }
        return arr;
      })
      this.getNews(name); // 獲取新聞列表
      this.setData({menu : tmp}); // 更新菜單
    }
  }
  // touchDot = touchMove; //每移動一次把上一次的點作為原點(好像沒啥用)
},
 // 觸摸結束事件
touchEnd:function(e){
  clearInterval(interval); // 清除setInterval
  time = 0;
  tmpFlag = true; // 回復滑動事件
},

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

  • 詳解Jest?如何支持異步及時間函數(shù)實現(xiàn)示例

    詳解Jest?如何支持異步及時間函數(shù)實現(xiàn)示例

    這篇文章主要為大家介紹了Jest?如何支持異步及時間函數(shù)實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • 基于JavaScript代碼實現(xiàn)微信掃一掃下載APP

    基于JavaScript代碼實現(xiàn)微信掃一掃下載APP

    有很多人在做微信的掃一掃下載。但是在微信更新之后微信將該功能給禁止掉了,也不能說是全面禁止吧,因為騰訊、微信是一家嘛,通過應用寶審核的應用好像還是可以通過掃一掃直接下載的,下面通過本篇文章給大家介紹微信掃一掃下載app的代碼片段,感興趣的朋友一起看看吧
    2015-12-12
  • 微信小程序 navbar實例詳解

    微信小程序 navbar實例詳解

    這篇文章主要介紹了微信小程序 navbar實例詳解的相關資料,需要的朋友可以參考下
    2017-05-05
  • JS實現(xiàn)大數(shù)相加大數(shù)相乘示例詳解

    JS實現(xiàn)大數(shù)相加大數(shù)相乘示例詳解

    這篇文章主要為大家介紹了JS實現(xiàn)大數(shù)相加大數(shù)相乘示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 使用async?await處理錯誤方法示例

    使用async?await處理錯誤方法示例

    這篇文章主要為大家介紹了使用async?await處理錯誤的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • lodash里的toLength和toPairs方法詳解

    lodash里的toLength和toPairs方法詳解

    這篇文章主要為大家介紹了lodash里的toLength和toPairs方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 前端JavaScript中的反射和代理

    前端JavaScript中的反射和代理

    這篇文章主要介紹的是前端JavaScript中的反射和代理,本文主要圍繞JavaScript中的內置Reflect、JavaScript中的內置Proxy、Proxy實現(xiàn)觀察者模式三個話題展開文章內容,需要的朋友可以參一考下
    2021-10-10
  • 微信小程序Server端環(huán)境配置詳解(SSL, Nginx HTTPS,TLS 1.2 升級)

    微信小程序Server端環(huán)境配置詳解(SSL, Nginx HTTPS,TLS 1.2 升級)

    這篇文章主要介紹了微信小程序Server端環(huán)境配置詳解(SSL, Nginx HTTPS,TLS 1.2 升級)的相關資料,需要的朋友可以參考下
    2017-01-01
  • 微信小程序 監(jiān)聽手勢滑動切換頁面實例詳解

    微信小程序 監(jiān)聽手勢滑動切換頁面實例詳解

    這篇文章主要介紹了微信小程序 監(jiān)聽手勢滑動切換頁面實例詳解的相關資料,需要的朋友可以參考下
    2017-06-06
  • JavaScript構造函數(shù)與原型之間的聯(lián)系

    JavaScript構造函數(shù)與原型之間的聯(lián)系

    這篇文章主要介紹了JavaScript構造函數(shù)與JavaScript原型,構造函數(shù)是一種特殊的函數(shù),主要用來初始化對象,即為對象成員變量賦初始值,它總與?new?一起使用,構造函數(shù)通過原型分配的函數(shù)是所有對象所共享的。下面來看看文章的集體介紹內容吧
    2021-12-12

最新評論

太保市| 陵川县| 淮滨县| 太康县| 雅江县| 历史| 沛县| 岳阳市| 得荣县| 遵义市| 土默特左旗| 平凉市| 昌平区| 定安县| 拉萨市| 廊坊市| 上蔡县| 阿图什市| 三明市| 交城县| 乌苏市| 霍山县| 包头市| 大化| 大关县| 泽州县| 永寿县| 昭平县| 博乐市| 仁布县| 邵阳市| 滦平县| 兴仁县| 平江县| 迭部县| 丰都县| 宜兰县| 白银市| 正安县| 美姑县| 定日县|