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

微信小程序swiper-dot中的點如何改成滑塊詳解

 更新時間:2021年07月02日 09:36:08   作者:Winder  
swiper組件是滑塊視圖容器,這篇文章主要給大家介紹了關(guān)于微信小程序swiper-dot中的點如何改成滑塊的相關(guān)資料,實現(xiàn)以后的效果還是不錯的,需要的朋友可以參考下

本文主要介紹如何基于已有的組件(比如微信小程序的swiper,還有我們平時h5用的比較多的swiper.js等),實現(xiàn)一個滑塊樣式的指示面板。demo基于小程序,但是邏輯通用。

背景

最近要做一個新的小程序,在首頁部分有一個swiper模塊,因為設(shè)計同學的出色發(fā)揮😭,讓我在枯燥的開發(fā)中得到了些許快樂。他們將swiper中指示面板中的點,改成了一個滑塊,說實話,老老實實整成一排點它不香么,哈哈哈哈。但是我寵他~

目標效果

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

  • 滑塊需要有一個自然的滑動效果。
  • 滑塊需要跟著滑動方向滑動。

思路

經(jīng)過整理,實現(xiàn)方案如下:

  • 在滑動swiper的content的時候,我們可以獲取當前頁面的curPage(一般情況下組件都會提供當前頁),接著我們可以在滑動結(jié)束之后設(shè)置上一個頁面的prePage,這個prePage其實就是本次的curPage。通過這個page我們可以得到滑塊滑動的起始位置以及結(jié)束位置。
  • 滑動我們可以通過transform來實現(xiàn)。
  • 因為用了transform,所以我們需要小程序支持自定義style,但目前來看小程序提供了一套this.animate的方法。

實現(xiàn)

swiper監(jiān)聽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,也就是我們的滑塊區(qū)域,代碼如下:

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

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

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

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

change事件中的邏輯

模板已經(jīng)寫完了,那我們就開始寫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的回調(diào)
   self.prePage = curPage;
   self.clearAnimation('.container', {
     translateX: true,
     transformOrigin: true
   });
 });
},
// 如果不是小程序,那么this.animate這個換成動態(tài)綁定style,或者其他的DOM操作即可。

到此功能已經(jīng)實現(xiàn)了,是不是發(fā)現(xiàn)這個功能還是很簡單的挺不錯的😒。

寫在最后

說實話,在實現(xiàn)的過程中,我有一些比較智障的行為,和當時的狀態(tài)有關(guān)吧,不知怎么就過于關(guān)注在如何判斷滑塊是左滑還是右滑,導致繞了個路。但是其實基于結(jié)果去考慮發(fā)現(xiàn),我們只要計算起始和結(jié)束位置即可,左滑必定是開始位置大于結(jié)束位置的。希望以上方案能給大家一些參考吧~🎉

到此這篇關(guān)于微信小程序swiper-dot中的點如何改成滑塊的文章就介紹到這了,更多相關(guān)微信小程序swiper-dot點改滑塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript中this關(guān)鍵字用法實例分析

    JavaScript中this關(guān)鍵字用法實例分析

    這篇文章主要介紹了JavaScript中this關(guān)鍵字用法,結(jié)合實例形式總結(jié)分析了javascript中this關(guān)鍵字在不同條件下的指向問題與相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • JavaScript實現(xiàn)的圓形浮動標簽云效果實例

    JavaScript實現(xiàn)的圓形浮動標簽云效果實例

    這篇文章主要介紹了JavaScript實現(xiàn)的圓形浮動標簽云效果,涉及javascript字符串與數(shù)組的遍歷、排序操作以及元素樣式動態(tài)操作與數(shù)學運算等相關(guān)技巧,是非常實用的一段代碼,需要的朋友可以參考下
    2015-08-08
  • JS基于面向?qū)ο髮崿F(xiàn)的拖拽庫實例

    JS基于面向?qū)ο髮崿F(xiàn)的拖拽庫實例

    這篇文章主要介紹了JS基于面向?qū)ο髮崿F(xiàn)的拖拽庫,以實例形式分析了JavaScript設(shè)置水平、垂直拖拽及限制拖拽范圍的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • 微信小程序?qū)崿F(xiàn)上傳多個文件 超過10個

    微信小程序?qū)崿F(xiàn)上傳多個文件 超過10個

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)上傳多個文件,超過10個,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • js 如何刪除對象里的某個屬性

    js 如何刪除對象里的某個屬性

    這篇文章主要介紹了js 如何刪除對象里的某個屬性,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • ECharts入門教程

    ECharts入門教程

    ECharts 是一個使用JavaScript實現(xiàn)的開源可視化庫,涵蓋各行業(yè)圖表,滿足各種需求。這篇文章介紹了ECharts的基礎(chǔ)知識,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • 微信小程序錄音實現(xiàn)功能并上傳(使用node解析接收)

    微信小程序錄音實現(xiàn)功能并上傳(使用node解析接收)

    在我們的日常開發(fā)中經(jīng)常會遇到錄音功能,并上傳到服務器,今天小編給大家分享微信小程序錄音功能實現(xiàn)并上傳錄音文件,使用node解析接收,需要的朋友可以參考下
    2020-02-02
  • JavaScript實現(xiàn)動態(tài)表格效果

    JavaScript實現(xiàn)動態(tài)表格效果

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)動態(tài)表格效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 詳解ES6 Promise的生命周期和創(chuàng)建

    詳解ES6 Promise的生命周期和創(chuàng)建

    這篇文章主要介紹了詳解ES6 Promise Promise的生命周期和創(chuàng)建,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • 淺析創(chuàng)建javascript對象的方法

    淺析創(chuàng)建javascript對象的方法

    下面小編就為大家?guī)硪黄獪\析創(chuàng)建javascript對象的方法。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05

最新評論

新疆| 咸宁市| 慈利县| 三门县| 古交市| 平邑县| 安仁县| 上饶市| 浦北县| 凌海市| 纳雍县| 绩溪县| 桓仁| 阳谷县| 长海县| 蒙山县| 长子县| 射洪县| 平乡县| 秭归县| 蒲江县| 吴堡县| 岚皋县| 磴口县| 广水市| 茂名市| 营山县| 天水市| 清丰县| 昆明市| 呈贡县| 鹤庆县| 兴义市| 惠水县| 普宁市| 通山县| 弋阳县| 沁阳市| 江源县| 容城县| 离岛区|