<!-- 滚动图 -->
<view class="swiper" style="position:relative">
<swiper autoplay="{{true}}" circular="{{true}}" onChange="currentHandle">
<block a:for="{{swiperList}}">
<swiper-item class="swiper-box">
<view class="swiper-item" style="width:100%height:300rpx">
<!-- lazy-load根据需要 onTap可以点击图片跳转 data-url绑定到跳转的链接-->
<image lazy-load="{{true}}" mode="scaleToFill" src="{{item.image}}" style="display:flexwidth:100%height:300rpx"
onTap="swiper" data-url="{{item.url}}" data-index='{{index}}' />
<镇枣镇/view>
</swiper-item>
</block>
</swiper>
<!-- 圆点 -->
<view class="swiper_dot">
<view class="trans MR10 {{current === index ?'active': ''}}" a:for="{{swiperList}}" a:key="{{index}}"></view>
</view>
</view>
```
```
data(){
swiperList:[
{
image:'',//图片的路径
url:""//要跳转的路岩袜径
},
{
image:'',
url:"御粗"
}
],
current: 0,//初始化dot
},
//监听current
currentHandle(e) {
console.log(e)
//改变current的值
let { current } = e.detail
this.setData({
current
})
},
```
```
.swiper-box {
padding: 0 30rpx
}
.swiper-item {
border-radius: 10rpx
overflow: hidden
}
.swiper_dot {
display: flex
flex: 1
justify-content: center
position: absolute
bottom: 16rpx
left: 42%//通过绝对定位 在滚动图的正下方 具体看自己
}
.MR10 {
margin-right: 10rpx
}
.trans {
width: 23rpx
height: 8rpx
background-color: #ffffff70
border-radius: 3.5rpx
transition: width 0.5s linear
}
.active {
background-color: #ffffffd7
width: 67rpx
transition: width 0.5s linear
}
```
---转自我的自个的
支付宝小程序Swiper 滚动图 带圆点和跳转方式_多甘范科夫斯基的博客-CSDN博客
本系列主要对小程序常用的组件做一个总结,方便自己及其它小程序姿携开发者作为字典查阅和检索。
小程序组件有一些公共属性,在每个组件中代表的意义和数据类型都是一样的。
容器组件:内部能嵌套任何标签。常用的视图容器有: view , scroll-view , swiper
<view/> 是一个块级容器组件,任何一种复杂的布局都可以嵌套在 <view/> 组件内,并在 *.wxss 中设置相关样式。
<view/> 除了上述组件共有的属性外,还包含一组关于点击行为的属性。
在布局中,需要容器具有可滑动的功能,且能监听滚动、触顶郑谨、触底等事件,就需要 <scroll-view/> 组件, <scroll-view/> 在 <view/> 组件上添加滚动相关的属性,通过这些属性,可以响应滚动相关事件。
注意:
<textarea/>, <video/>, <map/>, <canvas/> 不能嵌套在 <scroll-view/>中使用
利用 swiper 组件,可以实现轮播图,滑动页面,预览图片等,一个完整的滑块视图软件由 <swiper/> 和 <swiper-item/> 两个标签组成,不能单独喊册基使用。一个 <swiper/> 只能嵌套一个或多个 <swiper-item/>标签,放置其它的标签会被删除,其中, <swiper-item/> 中能放置任何标签,高度默认为 100% ,另外没有任何其它特殊属性。
<swiper/> 的属性如下:
微信小程序Swiper做Tab切换,带tab切换动画
小程序中我们做tab切换一般情况下可以做点击切换,但是有Swiper组件,其实我们也可以做滑动切换
监听Swiper的bindchange,我们就可以在切换时改变tab的选装状态达到切换的目的。
但是这样的方式tab的切换方式是跳转式的,体验不是很好。于是就有了这个demo,我们一步步优化切换体验。
首先:利用flex布局,做出tab区域,如果tab选项卡很多可以使用Scroll-view;一般的跳转式的tab用boder-bottom实现就好,这里我们加了一个“navbar-slider”,加上translateX动画实现平移切换。
然后:计算出每个tabItem的宽度,和每个item距离0坐标的距离;下中50是slider的宽度,对应上面“width:50px”
关联:1、监听item点击,切换swiper;2、监听swiper切换改变slider位置和tab显示
效果展示如下:
现在我们已经实现了,Swiper和tab的带动画联动,但是我们可以发现,我们的切换动画是在切换之后郑旦贺进行的,我们这里还可以继续优化。
swiper在切换时可以监听bindtransition,swiper-item 的位置发生改变时会触发 transition 事件,event.detail = {dx: dx, dy: dy},dx则是平移的偏移量,我们可以通过这个监听来实时设置slider的位置。
切换后校正slider的位置,这喊派里我们不能使用bindchange来校正,因为bindchange在切换时手指释放的时候就调用了,我们这里使用bindanimationfinish回调来校正(动画结束时会触发 animationfinish 事件,event.detail 同上)
最终:展示如下
在小程序开发文档中明确说明了最好不要频繁调用setData,我们最后这种方式就会频繁的调用,所以这里其实只是提供这种思路,但是工程中并不迟告建议这么使用
小程序开发者文档
SwiperTab
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)