麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 課堂 > 小程序 > 正文

微信小程序功能之全屏滾動效果的實現代碼

2020-03-21 16:06:28
字體:
來源:轉載
供稿:網友

想做一個全屏滾動的效果,于是在網上找了一個差不多的例子,但是覺得有些地方不是很好,于是改進了一下;

先給大家展示下效果圖,感覺不錯,請參考實例代碼。

微信小程序,全屏,滾動,代碼

代碼:

wxml: 

<!-- 第一頁 -- >  <view id='hook1' class="section section01 {{scrollindex==0?'active':''}}" style='background:red' bindtouchstart="scrollTouchStart" bindtouchmove='scrollTouchMove' bindtouchend="scrollTouchEnd">      <view class='cont'>        <view class='cont-body'>          <view>one</view>        </view>      </view>    </view>    <!-- 第二頁 -->    <view id='hook2' class="section section02 {{scrollindex==1?'active':''}}" style='background:pink' bindtouchstart="scrollTouchStart" bindtouchmove='scrollTouchMove' bindtouchend="scrollTouchEnd">      <view class='cont'>        <view class='cont-body'>          <view>two</view>        </view>      </view>    </view>    <!-- 第三頁 -->    <view id='hook3' class="section section03 {{scrollindex==2?'active':''}}" style='background:blue' bindtouchstart="scrollTouchStart" bindtouchmove='scrollTouchMove' bindtouchend="scrollTouchEnd">      <view class='cont'>        <view class='cont-body'>          <view>three</view>        </view>      </view>    </view>    <!-- 第四頁 -->    <view id='hook4' class="section section04 {{scrollindex==3?'active':''}}" style='background:green' bindtouchstart="scrollTouchStart" bindtouchmove='scrollTouchMove' bindtouchend="scrollTouchEnd">      <view class='cont'>        <view class='cont-body'>          <view>foure</view>        </view>      </view>    </view>

wxss:

 

page {  height: 100%;  background: fff;  color: #282828;}.container {  flex: 1;  flex-direction: column;  box-sizing: border-box;  padding: 0;  align-items: initial;  justify-content: first baseline;}.container-fill {  height: 100%;  overflow: hidden;}.scroll-fullpage {  height: 100%;}.section {  height: 100%;}.cont {  width: 100%;  height: 100%;  margin: 0 auto;  position: relative;}.cont .cont-body {  width: 75%;  position: absolute;  left: 50%;  top: 50%;  transform: translate(-50%, -50%);}

js:

Page({  /**   * 頁面的初始數據   */  data: {      scrollindex: 0, // 當前頁面的索引值        totalnum: 4, // 總共頁面數        starty: 0, // 開始的位置x        startTime: 0,  // 開始的時間戳        endy: 0, // 結束的位置y        endTime: 0,  // 結束的時間戳        critical: 80, // 觸發翻頁的臨界值        maxTimeCritical: 300,  // 滑動的時間戳臨界值上限        minTimeCritical: 100,  // 滑動的時間戳臨界值下限        margintop: 0, // 滑動下拉距離      currentTarget: null,  // 當前點擊的元素的id  },  scrollTouchStart: function(e) {    let py = e.touches[0].pageY,      stamp = e.timeStamp,      currentTarget = e.currentTarget.id;    console.log(py);    this.setData({      starty: py,      startTime: stamp,      currentTarget: currentTarget    })  },  scrollTouchMove(e) {    // console.log(e);  },  scrollTouchEnd: function(e) {    let py = e.changedTouches[0].pageY,      stamp = e.timeStamp,      d = this.data,      timeStampdiffer = stamp - d.startTime;    this.setData({      endy: py,      endTime: stamp    })    console.log('開始:' + d.starty, '結束:' + e.changedTouches[0].pageY);    console.log('時間戳之差: ' + timeStampdiffer);    if (timeStampdiffer <= d.maxTimeCritical && timeStampdiffer > d.minTimeCritical && (d.starty > e.changedTouches[0].pageY)) {      let currentTarget = parseInt(d.currentTarget.slice(4)),        nextTarget = currentTarget + 1;      const query = wx.createSelectorQuery();      query.select(`#hook${nextTarget}`).boundingClientRect();      query.selectViewport().scrollOffset();      query.exec(function (res) {        // console.log(res);             if (res[0] != null) {          wx.pageScrollTo({            scrollTop: res[0].height * currentTarget,          })        }      })      } else if (timeStampdiffer <= d.maxTimeCritical && timeStampdiffer > d.minTimeCritical && (d.starty < e.changedTouches[0].pageY)) {  // 下拉      let currentTarget = parseInt(d.currentTarget.slice(4)),        preTarget = currentTarget - 2 == -1 ? 0 : currentTarget - 2;        const query = wx.createSelectorQuery();        query.select(`#hook1`).boundingClientRect();        query.selectViewport().scrollOffset();        query.exec(function (res) {          console.log(res);          wx.pageScrollTo({            scrollTop: res[0].height * preTarget          })        })      }       },})

總結

以上所述是小編給大家介紹的微信小程序功能之全屏滾動效果的實現代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成年人免费视频播放 | 久久国产精品久久久久久久久久 | 久久久三区 | 成人做爰高潮片免费视频美国 | 精品xxxx户外露出视频 | 国产69精品久久久久9999不卡免费 | 黄色大片网站在线观看 | 久久99精品久久久久久小说 | 欧美人与性禽动交精品 | 日韩黄色三级视频 | 毛片在线免费播放 | 日本va在线观看 | 成人福利视频在线 | 国产精品v片在线观看不卡 成人一区二区三区在线 | 密室逃脱第一季免费观看完整在线 | 一级网站片 | 国产欧美一区二区三区免费看 | 黄色毛片a级 | 国产精品一区二区三区99 | 日本欧美一区二区三区在线观看 | 蜜桃网在线| 日本欧美一区二区三区在线观看 | 中文字幕在线观看视频一区 | 亚州综合一区 | 亚洲电影在线观看高清免费 | 热re91久久精品国产99热 | 男女隐私免费视频 | 国产午夜精品久久久久久久蜜臀 | 国产一区二区三区四区在线 | 久久网一区二区 | 美女久久久久久久久 | 欧美一区2区三区4区公司二百 | 亚洲成人黄色片 | 精品一区二区免费 | 欧美成人午夜一区二区三区 | 一区二区久久久久草草 | 免费国产自久久久久三四区久久 | 爽爽淫人综合网网站 | 欧美黄色免费视频 | 日韩理论电影网 | 欧美性生交xxxxx久久久缅北 |