返回顶部
首页 > 资讯 > 前端开发 > JavaScript >微信小程序swiper-dot中的点如何改成滑块详解
  • 318
分享到

微信小程序swiper-dot中的点如何改成滑块详解

2024-04-02 19:04:59 318人浏览 独家记忆
摘要

目录背景目标效果思路实现swiper监听change自定义dot模块change事件中的逻辑写在最后本文主要介绍如何基于已有的组件(比如微信小程序的swiper,还有我们平时h5用的

本文主要介绍如何基于已有的组件(比如微信小程序的swiper,还有我们平时h5用的比较多的swiper.js等),实现一个滑块样式的指示面板。demo基于小程序,但是逻辑通用。

背景

最近要做一个新的小程序,在首页部分有一个swiper模块,因为设计同学的出色发挥😭,让我在枯燥的开发中得到了些许快乐。他们将swiper中指示面板中的点,改成了一个滑块,说实话,老老实实整成一排点它不香么,哈哈哈哈。但是我宠他~

目标效果

整体来看很简单。主要是下边的滑块需要花一些功夫。整理需求之后需要实现的功能点如下:

  • 滑块需要有一个自然的滑动效果。
  • 滑块需要跟着滑动方向滑动。

思路

经过整理,实现方案如下:

  • 在滑动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中的点如何改成滑块的文章就介绍到这了,更多相关微信小程序swiper-dot点改滑块内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 微信小程序swiper-dot中的点如何改成滑块详解

本文链接: https://lsjlt.com/news/129653.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 微信小程序swiper-dot中的点如何改成滑块详解
    目录背景目标效果思路实现swiper监听change自定义dot模块change事件中的逻辑写在最后本文主要介绍如何基于已有的组件(比如微信小程序的swiper,还有我们平时h5用的...
    99+
    2024-04-02
  • 微信小程序swiper-dot中的点怎么改成滑块
    这篇文章主要介绍“微信小程序swiper-dot中的点怎么改成滑块”,在日常操作中,相信很多人在微信小程序swiper-dot中的点怎么改成滑块问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”微信小程序swip...
    99+
    2023-06-08
  • 微信小程序swiper如何实现禁止用户滑动
    这篇文章主要为大家展示了“微信小程序swiper如何实现禁止用户滑动”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序swiper如何实现禁止用户滑动”这...
    99+
    2024-04-02
  • Android如何实现微信小程序滑块验证
    这篇文章主要讲解了“Android如何实现微信小程序滑块验证”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android如何实现微信小程序滑块验证”吧!如图:滑块验证组件puzzleVeri...
    99+
    2023-06-26
  • 微信小程序如何实现点餐小程序左侧滑动菜单
    这篇文章主要讲解了“微信小程序如何实现点餐小程序左侧滑动菜单”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信小程序如何实现点餐小程序左侧滑动菜单”吧!效果图:一、初识scroll-view...
    99+
    2023-07-02
  • 微信小程序如何实现登陆注册滑块验证
    这篇文章主要介绍“微信小程序如何实现登陆注册滑块验证”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序如何实现登陆注册滑块验证”文章能帮助大家解决问题。具体效果如下一、创建自定义组件MoveV...
    99+
    2023-06-30
  • 微信小程序如何改变小程序码中间的logo
    本篇内容介绍了“微信小程序如何改变小程序码中间的logo”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!所以改变方法,把头像传回后台,使用 p...
    99+
    2023-06-26
  • 微信小程序中如何实现swiper组件构建轮播图
    小编给大家分享一下微信小程序中如何实现swiper组件构建轮播图,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!实现效果图:wxm...
    99+
    2024-04-02
  • 微信小程序版本机制和storage如何平滑兼容详解
    目录问题背景小程序版本小程序的本地存储方案1:读写加标志方案2:读写加标志 + 监测生产版本更新总结问题背景 一款小程序默认会有三个版本(开发、体验、生产),而同一台手机打开同一个小...
    99+
    2022-12-08
    小程序 storage 微信小程序的storage 小程序版本机制和storage
  • 微信小程序中scroll-view实现锚点滑动的方法
    这篇文章主要介绍微信小程序中scroll-view实现锚点滑动的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!示意图如下:因为在微信小程序的环境中不能想在浏览器里设置标签,或者操...
    99+
    2024-04-02
  • 微信小程序中如何实现左滑删除效果
    小编给大家分享一下微信小程序中如何实现左滑删除效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!先看效果要实现的效果:1,当向左...
    99+
    2024-04-02
  • Java中如何生成微信小程序太阳码
    这篇文章主要介绍“Java中如何生成微信小程序太阳码”,在日常操作中,相信很多人在Java中如何生成微信小程序太阳码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java中如何生成微信小程序太阳码”的疑惑有所...
    99+
    2023-06-30
  • 如何解决微信小程序中scroll-view不能左右滑动的问题
    这篇文章将为大家详细讲解有关如何解决微信小程序中scroll-view不能左右滑动的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。问题:    在小程序页面布局的时候用到...
    99+
    2023-06-20
  • 微信小程序如何实现swiper轮播图中的图片自适应高度
    这篇文章给大家分享的是有关微信小程序如何实现swiper轮播图中的图片自适应高度的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。小程序中的轮播图很简单,官方都有例子的,但是唯一的缺...
    99+
    2024-04-02
  • 如何生成无限制的微信小程序码
    小编给大家分享一下如何生成无限制的微信小程序码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!概述现在除了用二维码之外,微信还可以...
    99+
    2024-04-02
  • 微信小程序详解如何实现付款功能
    目录1 支付场景2 创建数据源2.1 商品数据源2.2 订单数据源3 创建连接器4 创建应用5 功能开发5.1 首页5.2 商品详情页5.3 订单页总结1 支付场景 我们梳理一下支付...
    99+
    2022-11-13
    微信小程序付款功能 小程序付款
  • 微信小程序中如何实现导航栏滑动定位功能
    这篇文章给大家分享的是有关微信小程序中如何实现导航栏滑动定位功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。实现的效果实现的原理1. 通过对scroll的监听获取滚动条的scr...
    99+
    2024-04-02
  • 如何在微信小程序中使用less详解(最优方式)
    前言 写惯了 less/sass,但是现在开发小程序缺还是 css,很不习惯。 在网上搜的教程,要么是 gulp,要么就是 vscode 的 Easy-less 的插件。 传统方...
    99+
    2024-04-02
  • 微信小程序中如何实现JS动态修改样式
    这篇文章主要为大家展示了“微信小程序中如何实现JS动态修改样式”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序中如何实现JS动态修改样式”这篇文章吧。微...
    99+
    2024-04-02
  • 微信小程序中如何实现左右滑动切换页面功能
    这篇文章主要为大家展示了“微信小程序中如何实现左右滑动切换页面功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序中如何实现左右滑动切换页面功能”这篇文...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作