关于微信小程序swiper的问题

关于小程序swiper的问题

代码

在官方示例上给swiper添加了current``bindchange``circular
添加了一个button``bindtap用于切换下一张

index.wxml

<swiper indicator-dots="{{indicatorDots}}"bindchange="swiperChange"current="{{index}}"circular="true"autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}"><block wx:for="{{imgUrls}}"><swiper-item><image src="{{item}}" class="slide-image" width="355" height="150"/></swiper-item></block>
</swiper>
<button bindtap="changeIndicatorDots"> indicator-dots </button>
<button bindtap="changeAutoplay"> autoplay </button>
<button bindtap="nextSwiper"> 下一张 </button>
<slider bindchange="intervalChange" show-value min="500" max="2000"/> interval
<slider bindchange="durationChange" show-value min="1000" max="10000"/> duration复制代码

index.js

    /*** create by ZenoTian*/
Page({data: {imgUrls: ['http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg','http://img06.tooopen.com/images/20160818/tooopen_sy_175866434296.jpg','http://img06.tooopen.com/images/20160818/tooopen_sy_175833047715.jpg'],indicatorDots: false,autoplay: false,interval: 5000,duration: 1000,index: 2},changeIndicatorDots: function(e) {this.setData({indicatorDots: !this.data.indicatorDots})},nextSwiper: function (e) {let {index} = this.dataindex === 2?index = 0:index++console.log(`下一张:${index}`)this.setData({index})},changeAutoplay: function(e) {this.setData({autoplay: !this.data.autoplay})},intervalChange: function(e) {this.setData({interval: e.detail.value})},durationChange: function(e) {this.setData({duration: e.detail.value})},swiperChange: function (e) {console.log('bindchange事件', `this.data.index:${this.data.index} e.detail.current:${e.detail.current}`)}
})复制代码

问题1:手动赋值current值,衔接滑动无效

点击下一张,通过给setData改变swipercurrent值,在从最后一张切换至第一张时,虽然设置了circular,但是不会有衔接滑动的效果,而是从尾部一路溜到了头。

问题2:绑定的current的值,滑动并不会改变

通过给swipercurrent绑定了this.data.index
默认值是生效的,但是在手滑滑块的时候,并不会自动改变this.data.index的值。
通过bindchange的打印可以看出来。this.data.index的值是永远不会变的。
所以这时候currentthis.data.index是不照应的。

例如:向右滑动

bindchange事件 this.data.index:2 e.detail.current:1
bindchange事件 this.data.index:2 e.detail.current:0
bindchange事件 this.data.index:2 e.detail.current:2
bindchange事件 this.data.index:2 e.detail.current:1
bindchange事件 this.data.index:2 e.detail.current:0复制代码

在官方文档中

如果在 bindchange 的事件回调函数中使用 setData 改变 current 值,则有可能导致 >setData 被不停地调用,因而通常情况下请不要这样使用

如果想让currentthis.data.index对照,还是需要在bindchange 的事件回调函数中使用setData改变current值。

  swiperChange: function (e) {console.log('bindchange事件',`this.data.index:${this.data.index} e.detail.current:${e.detail.current}`)this.setData({index: e.detail.current})}复制代码

问题3:控制current的值切换,与滑动切换代码结果不一样

如果采取了在bindchange 的事件回调函数中使用setData改变current值。
点击下一张:给this.data.index赋值后触发的bindchange事件回调中的,this.data.indexe.detail.current的值相同。

下一张:0
bindchange事件 this.data.index:0 e.detail.current:0
下一张:1
bindchange事件 this.data.index:1 e.detail.current:1
下一张:2
bindchange事件 this.data.index:2 e.detail.current:2
下一张:0
bindchange事件 this.data.index:0 e.detail.current:0
下一张:1
bindchange事件 this.data.index:1 e.detail.current:1复制代码

手动滑动时:bindchange事件回调中的,this.data.index的值会是上一次的值

bindchange事件 this.data.index:2 e.detail.current:1
bindchange事件 this.data.index:1 e.detail.current:0
bindchange事件 this.data.index:0 e.detail.current:2
bindchange事件 this.data.index:2 e.detail.current:1
bindchange事件 this.data.index:1 e.detail.current:0复制代码

转载于:https://juejin.im/post/59c370e2f265da0672284260

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/454991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyQt5案例汇总(完整版)

个人博客点这里 PyQt5案例汇总(完整版) 起步 PyQt5是一套绑定Qt5的应用程序框架。他在Python 2.x和3.x中都是可用的。该教程使用的是Python3.x。 Qt库是一套最有用的GUI库。 PyQt5是作为一套Python模块实现的。他已经超过620个类和6000个函数与方法。他是一个运行在所有主…

中的 隐藏鼠标菜单_Mac移动隐藏删除顶部菜单栏图标教程

苹果菜单栏贯穿 Mac 的屏幕顶部。左侧是苹果菜单和应用菜单&#xff0c;应用菜单一般显示你当前使用的Mac软件的所有功能菜单。右侧通常是以图标显示的状态菜单&#xff0c;帮助你快速查看Mac的状态以及快速访问某些Mac软件。移动图标位置若想要重新排列状态菜单栏的图标&#…

可以用什么代替平面镜

答案是镜面 潜望镜是利用平面镜来改变光路转载于:https://www.cnblogs.com/lidepeng/p/7280593.html

[hadoop] kettle spoon 基础使用 (txt 内容抽取到excel中)

spoon.bat 启动kettle。 测试数据 1. 新建转换 输入中选择文本文件输入 双击设置文本输入 字符集、分隔符设置 获取对应的字段&#xff0c;预览记录。 拖入 excel输出&#xff0c;设置转换关系 设置输出路径 获取字段 启动转换 导入的excel数据&#xff08;设置好格式,图中ID,A…

ffmpeg提取音频播放器总结

ffmpeg提取音频播放器总结&#xff1b; 一&#xff1a;简介 从编写音频播放器代码到完成播放器编写&#xff0c;测试&#xff0c;整整5天的时间&#xff0c;这时间还不算之前对 ffmpeg熟悉的时间&#xff0c;可以说是历经千辛万苦&#xff0c;终于搞出来了&#xff0c;虽然最…

【BZOJ 4103】 [Thu Summer Camp 2015]异或运算 可持久化01Trie

我们观察数据&#xff1a;树套树 PASS 主席树 PASS 一层一个Trie PASS 再看&#xff0c;异或&#xff01;我们就把目光暂时定在01Tire然后我们发现&#xff0c;我们可以带着一堆点在01Trie上行走&#xff0c;因为O(n*q*30m*30)是一个可选复杂度。 我们想一下我们正常的时候…

Docker学习笔记——Java及Tomcat Dockerfile

1、Java Dockerfile创建项目目录java&#xff0c;目录下上传所需java版本压缩包&#xff0c;并创建Dockerfile文件&#xff0c;项目结构如下&#xff1a;java-Dockerfile-jdk-8u111-linux-x64.gzDockerfile内容&#xff1a;# JAVA # Version 1.8.0_111 # SOURCE_IMAGE FROM cen…

rabbitmq接口异常函数方法_RabbitMQ监控(三):监控队列状态

#RabbitMQ 监控(三)验证RabbitMQ健康运行只是确保消息通信架构可靠性的一部分&#xff0c;同时&#xff0c;你也需要确保消息通信结构配置没有遭受意外修改&#xff0c;从而避免应用消息丢失。RabbitMQ Management HTTP API提供了一个方法允许你查看任何vhost上的任何队列&…

FFMpeg语法参数中文参考手册

要查看你的ff mpeg支持哪些 格式&#xff0c;可以用如下命令&#xff1a;$ ffmpeg -formats | less还可以把 视频文件导出成jpg序列帧&#xff1a;$ ffmpeg -i bc-cinematic-en.avi example.%d.jpgdebian下安装ffmpeg很简单&#xff1a;&#xff03;apt-get install ffmpegffmp…

Java类集框架 —— LinkedHashMap源码分析

前言 我们知道HashMap底层是采用数组单向线性链表/红黑树来实现的&#xff0c;HashMap在扩容或者链表与红黑树转换过程时可能会改变元素的位置和顺序。如果需要保存元素存入或访问的先后顺序&#xff0c;那就需要采用LinkedHashMap了。 LinkedHashMap结构 LinkedHashMap继承自H…

apache 支持.htaccess重写url

1. httpd.conf 添加&#xff1a; <Directory />Options Indexes FollowSymLinks MultiviewsAllowOverride allRequire all grantedRewriteEngine On</Directory> 开启&#xff1a; 在phpinfo里找到&#xff1a; 说明开启成功。 2.httpd-vhosts.conf &#xff08;开…

oom 如何避免 高并发_【高并发】高并发环境下如何防止Tomcat内存溢出?看完我懂了!!...

【高并发】高并发环境下如何防止Tomcat内存溢出&#xff1f;看完我懂了&#xff01;&#xff01;发布时间&#xff1a;2020-04-19 00:47,浏览次数&#xff1a;126, 标签&#xff1a;Tomcat写在前面随着系统并发量越来越高&#xff0c;Tomcat所占用的内存就会越来越大&#xff0…

[JSOI2008]最小生成树计数

OJ题号&#xff1a;  BZOJ1016 题目大意&#xff1a;   给定一个无向带权图&#xff0c;求最小生成树的个数。 思路&#xff1a;   先跑一遍最小生成树&#xff0c;统计相同权值的边出现的个数。   易证不同的最小生成树&#xff0c;它们不同的那一部分边的权值实际上是…

vuex webpack 配置_vue+webpack切换环境和打包之后服务器配置

import axios from ‘axios‘import store from ‘../store/index‘const rootUrl process.env.API_ROOT//创建axios实例const service axios.create({timeout:30000 //超时时间})//添加request拦截器service.interceptors.request.use(config >{if (Object.keys(config.hea…

redis基本用法学习(C#调用FreeRedis操作redis)

FreeRedis属于常用的基于.net的redis客户端&#xff0c;EasyCaching中也提供适配FreeRedis的包。根据参考文献4中的说法&#xff0c;FreeRedis和CsRedis算是近亲&#xff08;都是GitHub中账号为2881099下的开源项目&#xff09;&#xff0c;因此其用法特别相似。FreeRedis的主要…

opencv:图像的基本变换

0.概述 图像变换的基本原理都是找到原图和目标图的像素位置的映射关系&#xff0c;这个可以用坐标系来思考&#xff0c;在opencv中&#xff0c; 图像的坐标系是从左上角开始(0,0)&#xff0c;向右是x增加方向(cols)&#xff0c;向下时y增加方向(rows)。 普通坐标关系&#xff1…

FFMpeg在Windows环境下的编译

1&#xff0e;安装MinGW &#xff08;1&#xff09;下载文件&#xff1a;MinGW-5.1.4.exe&#xff0c; &#xff08;2&#xff09;安装时选择下列组件&#xff1a; binutils-2.19.1-mingw32-bin.tar.gz gcc-core-3.4.5-20060117-3.tar.gz gcc-g-3.4.5-20060117-3.tar.gz …

中通知设置响铃_主动切断干扰源——手机“通知”精细化管理

上周去参加我福福幼儿园的母亲节活动&#xff0c;内容是孩子和家长一起穿手链。期间我发现和我同桌的一个家长的手机不停在响&#xff0c;当然伴随着注意力被打断。不仅是这位家长自己&#xff0c;连我也受到了干扰。于是职业病又犯了&#xff0c;我悄悄的看了一眼这位家长的手…

OCM_第十九天课程:Section9 —》Data Guard _ DATA GUARD 原理/DATA GUARD 应用/DATA GUARD 搭建...

注&#xff1a;本文为原著&#xff08;其内容来自 腾科教育培训课堂&#xff09;。阅读本文注意事项如下&#xff1a;1&#xff1a;所有文章的转载请标注本文出处。2&#xff1a;本文非本人不得用于商业用途。违者将承当相应法律责任。3&#xff1a;该系列文章目录列表&#xf…

python安装各种插件

http://www.lfd.uci.edu/~gohlke/pythonlibs/#pip 感受&#xff1a;如果编辑pip真的一直出问题&#xff0c;考虑降成32位的进行安装。毕竟合理搭配比木桶突出有用。转载于:https://www.cnblogs.com/osmondwang/p/7307678.html