Uniapp实现swiper滑到每一项放大缩小,一排多个显示

  • Post author:
  • Post category:uniapp

先来看看效果

在这里插入图片描述
在这里插入图片描述
滑到的就放大,且一个屏幕可以显示其他item的部分内容

<swiper previous-margin='28px' next-margin='28px'      @change="change"
		>
			<block v-for="(item,index) in list" :key="index" >
				<swiper-item>
					<view class="box"
					 :animation="index == currentIndex?animationData:animationData2">
						<!-- 图片 -->
						<view class="imgcot">
							<image :src="item.image" mode="widthFix"></image>
						</view>

					</view>
				</swiper-item>
			</block>
</swiper>

previous-margin:前边距,可用于露出前一项的一小部分,接受 px 和 rpx 值

next-margin:后边距,可用于露出后一项的一小部分,接受 px 和 rpx 值

@change:当图片改变时会触发 change 事件

data中数据

data() {
			return {
				list: [{
						image: 'https://cdn.uviewui.com/uview/swiper/1.jpg',
						title: '昨夜'
					},
					{
						image: 'https://cdn.uviewui.com/uview/swiper/2.jpg',
						title: '身无'
					},
					{
						image: 'https://cdn.uviewui.com/uview/swiper/3.jpg',
						title: '谁念'
					}
		],
		currentIndex:0,
		animationData: {},
		animationData2: {},
}

methods

methods: {
           change(e){
			   this.currentIndex = e.detail.current
		   },
	},

computed

	// 收缩
		stretch() {
		   var animation = uni.createAnimation({
		     duration: 400,
		     timingFunction: 'ease',
		   })
		   animation.scale(1).step()
		   this.animationData =  animation.export()
		 },
		 // 展开
		 shrink(h) {
		    var animation2 = uni.createAnimation({
		      duration: 400,
		      timingFunction: 'ease',
		    })
		    animation2.scale(0.94).step()
		    this.animationData2 =  animation2.export()
	},

如果呢,你想让别的一些东西滑动的时候,这个图片跟着滑动的话,给swiper动态绑定current即可


版权声明:本文为weixin_45389051原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。