亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

微信小程序swiper-dot中的點(diǎn)如何改成滑塊詳解

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

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

背景

最近要做一個(gè)新的小程序,在首頁(yè)部分有一個(gè)swiper模塊,因?yàn)樵O(shè)計(jì)同學(xué)的出色發(fā)揮😭,讓我在枯燥的開(kāi)發(fā)中得到了些許快樂(lè)。他們將swiper中指示面板中的點(diǎn),改成了一個(gè)滑塊,說(shuō)實(shí)話,老老實(shí)實(shí)整成一排點(diǎn)它不香么,哈哈哈哈。但是我寵他~

目標(biāo)效果

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

  • 滑塊需要有一個(gè)自然的滑動(dòng)效果。
  • 滑塊需要跟著滑動(dòng)方向滑動(dòng)。

思路

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

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

實(shí)現(xiàn)

swiper監(jiān)聽(tīng)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">
       這個(gè)是swiper{{index}}
     </view>
   </swiper-item>
 </block>
</swiper>

自定義dot模塊

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

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

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

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

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

change事件中的邏輯

模板已經(jīng)寫完了,那我們就開(kāi)始寫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這個(gè)換成動(dòng)態(tài)綁定style,或者其他的DOM操作即可。

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

寫在最后

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

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

相關(guān)文章

  • 輕松實(shí)現(xiàn)js彈框顯示選項(xiàng)

    輕松實(shí)現(xiàn)js彈框顯示選項(xiàng)

    這篇文章主要為大家詳細(xì)介紹了js輕松實(shí)現(xiàn)彈框顯示選項(xiàng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • JavaScript實(shí)現(xiàn)表格點(diǎn)擊排序的方法

    JavaScript實(shí)現(xiàn)表格點(diǎn)擊排序的方法

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)表格點(diǎn)擊排序的方法,可實(shí)現(xiàn)點(diǎn)擊頂部數(shù)據(jù)項(xiàng)標(biāo)題實(shí)現(xiàn)對(duì)應(yīng)數(shù)據(jù)列的排序效果,涉及javascript鼠標(biāo)事件及數(shù)據(jù)排序的技巧,需要的朋友可以參考下
    2015-05-05
  • 論Bootstrap3和Foundation5網(wǎng)格系統(tǒng)的異同

    論Bootstrap3和Foundation5網(wǎng)格系統(tǒng)的異同

    這篇文章主要介紹了Bootstrap3和Foundation5網(wǎng)格系統(tǒng),網(wǎng)格的基本構(gòu)造,如何構(gòu)建的,描述它們的主要部件,以及它們對(duì)不同屏幕的大小表現(xiàn)出的差異,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Javascript動(dòng)態(tài)綁定事件的簡(jiǎn)單實(shí)現(xiàn)代碼

    Javascript動(dòng)態(tài)綁定事件的簡(jiǎn)單實(shí)現(xiàn)代碼

    Javascript事件綁定的方法很多,很靈活。不過(guò),作為比較簡(jiǎn)單的動(dòng)態(tài)綁定,下面的代碼看似正確,但得不到預(yù)期的效果。
    2010-12-12
  • 基于JavaScript實(shí)現(xiàn)新年賀卡特效

    基于JavaScript實(shí)現(xiàn)新年賀卡特效

    本文介紹了一款超級(jí)炫酷的2022新年快樂(lè)html網(wǎng)頁(yè)特效,霓虹的城市夜景和絢爛的煙花很是特別,該html頁(yè)面還有交互效果,點(diǎn)擊鼠標(biāo)就會(huì)呈現(xiàn)煙花綻放的特效。需要的可以參考一下
    2022-01-01
  • Postman動(dòng)態(tài)獲取返回值過(guò)程詳解

    Postman動(dòng)態(tài)獲取返回值過(guò)程詳解

    這篇文章主要介紹了Postman動(dòng)態(tài)獲取返回值過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • JS中引用百度地圖并將百度地圖的logo和信息去掉

    JS中引用百度地圖并將百度地圖的logo和信息去掉

    采用CSS覆蓋的方法就可以了,但是官方是不允許這么做的,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下
    2013-09-09
  • MUI 實(shí)現(xiàn)側(cè)滑菜單及其主體部分上下滑動(dòng)的方法

    MUI 實(shí)現(xiàn)側(cè)滑菜單及其主體部分上下滑動(dòng)的方法

    下面小編就為大家分享一篇MUI 實(shí)現(xiàn)側(cè)滑菜單及其主體部分上下滑動(dòng)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • 淺析js預(yù)加載/延遲加載

    淺析js預(yù)加載/延遲加載

    本文主要介紹了js預(yù)加載和延時(shí)加載2種技術(shù),簡(jiǎn)單分析了他們的實(shí)現(xiàn)方式和優(yōu)缺點(diǎn),非常的實(shí)用,有需要的朋友參考下
    2014-09-09
  • javascript實(shí)現(xiàn)貪吃蛇小游戲

    javascript實(shí)現(xiàn)貪吃蛇小游戲

    這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)貪吃蛇小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07

最新評(píng)論