中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信小程序swiper-dot中的點怎么改成滑塊

發布時間:2022-04-02 17:01:37 來源:億速云 閱讀:220 作者:iii 欄目:移動開發

這篇文章主要介紹“微信小程序swiper-dot中的點怎么改成滑塊”,在日常操作中,相信很多人在微信小程序swiper-dot中的點怎么改成滑塊問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”微信小程序swiper-dot中的點怎么改成滑塊”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

目標效果

整體來看很簡單。主要是下邊的滑塊需要花一些功夫。整理需求之后需要實現的功能點如下:

  • 滑塊需要有一個自然的滑動效果。

  • 滑塊需要跟著滑動方向滑動。

微信小程序swiper-dot中的點怎么改成滑塊

思路

經過整理,實現方案如下:

  • 在滑動swiper的content的時候,我們可以獲取當前頁面的curPage(一般情況下組件都會提供當前頁),接著我們可以在滑動結束之后設置上一個頁面的prePage,這個prePage其實就是本次的curPage。通過這個page我們可以得到滑塊滑動的起始位置以及結束位置。

  • 滑動我們可以通過transform來實現。

  • 因為用了transform,所以我們需要小程序支持自定義style,但目前來看小程序提供了一套this.animate的方法。

實現

swiper監聽change

首先我們需要使用swiper的change事件,代碼如下:

<swiper
 class="hot-content-swiper"
 indicator-dots="{{indicatorDots}}"
 vertical="{{vertical}}"
 bindchange="sliderHandler">
 <block wx:for="{{popular_zone_list}}" wx:key="*this">
   <swiper-item>
     <view class="hot-list">
       這個是swiper{{index}}
     </view>
   </swiper-item>
 </block>
</swiper>

自定義dot模塊

其次,我們需要自定dot的DOM,也就是我們的滑塊區域,代碼如下:

<view class="dot">
 <view class="dot-bar" style="width: {{dotBarWidth}}rpx"></view>
</view>

這其中需要給我們的滑塊一個初始化的大小,不然滑動之后會有一個寬度變換的抖動,也就是dotBarWidth。

這個滑塊的大小是基于滑道的長度,以及swiper-item的數量來計算的。這樣子得到寬度之后我們只要偏移滑塊寬度的倍數即可。

let dotWidth = 100;
let dotBarWidth = Math.round(dotWidth/popular_zone_list.length);

change事件中的邏輯

模板已經寫完了,那我們就開始寫change的事件,代碼如下:

sliderHandler({detail}) {
 let curPage = detail.current;
 let self = this;
 this.animate(".dot-bar", [
   {
     translateX: self.prePage * 100 + "%",
     transformOrigin: "center",
   },
   {
     translateX: curPage*100 + "%",
     transformOrigin: "center",
   },
 ], 100, function () { //animate的回調
   self.prePage = curPage;
   self.clearAnimation(".container", {
     translateX: true,
     transformOrigin: true
   });
 });
},
// 如果不是小程序,那么this.animate這個換成動態綁定style,或者其他的DOM操作即可。

到此,關于“微信小程序swiper-dot中的點怎么改成滑塊”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大竹县| 黎平县| 宁德市| 四川省| 安乡县| 翁源县| 金华市| 密山市| 泽州县| 陇西县| 固始县| 突泉县| 浪卡子县| 绥江县| 溆浦县| 凌源市| 酉阳| 安图县| 四会市| 新和县| 阳高县| 新津县| 班玛县| 阜平县| 崇阳县| 衡山县| 惠水县| 柳江县| 会理县| 绥宁县| 漳州市| 柳河县| 大名县| 凤山市| 德昌县| 太康县| 常山县| 左权县| 尖扎县| 衡山县| 朝阳区|