uniapp 实现3d轮播图,也就是中间的放大两边的缩小 用swiper和swiper-item就能实现

话不多说,直接上代码,无需引入外部资源, 用swiper和swiper-item就能实现

先上结构代码

html 复制代码
<swiper class="header" circular previous-margin="80rpx" next-margin="60rpx" :current="current"
				@change="changeIndex">
				<swiper-item v-for="(item, index) in bannerList" :key="index">
					<!-- 当前所在滑块的 index == index 放大 -->
					<view :class=" current === index ? 'slide-image active' : 'slide-image quiet'">
						<image :src="item.url" style="width: 100%;height: 76%;">
						</image>
						<view class="" style="padding: 0 20rpx;">
							<view class=""
								style="display: flex; color: #000;font-weight: 600;height: 60rpx;align-items: center;justify-content: space-between;">
								<view class="">
									{{item.title}}
								</view>
								<image
									src="https://haowu.shenzhenlinghang.com/uploads/20240924/0e234868d2cff972a73c8299b4f6d7a7.png"
									mode="heightFix" style="height: 50rpx;"></image>
							</view>
							<view class="innnerbox">
								<view class="inner1">
									<view class="inner2" style="width: 70%;height: 100%;background-color: #6ac4b0;border-radius: 15rpx;">

									</view>
								</view>
								<view class="">
									已抢{{item.count}}份
								</view>
							</view>
						</view>
					</view>
				</swiper-item>
			</swiper>

下面是css部分

javascript 复制代码
.header {
		box-sizing: border-box;
		width: 100%;
		height: 452rpx;

		// margin: 50% auto;
		background-color: #e9f4f2;
		color: #fff;
		border-radius: 10rpx;
		margin-bottom: 50rpx;

		.slide-image {
			width: 600rpx;
			height: 452rpx;
			background: #fff;
			border-radius: 10rpx;

			.innnerbox {
				margin-top: 10rpx;
				height: 20rpx;
				align-items: center;
				display: flex;
				color: #64c1ad;
				font-size: 24rpx;
				justify-content: space-between;

				.inner1 {
					width: 70%;
					background-color:#e7f6f3;
					height: 100%;
					border-radius: 15rpx;
				}
			}
		}

		.active {
			// 中间放大动画
			transform: none;
			transition: all 0.2s ease-in 0s;
		}

		.quiet {
			// 两边缩小动画
			transform: scale(0.95);
			opacity: 0.4;
			transition: all 0.5s ease-in 0s;
		}
	}

还有最关键的js部分代码

javascript 复制代码
const bannerList = ref([{
			url: 'https://haowu.shenzhenlinghang.com/uploads/20240924/deba83e41e2823b2ae91fd54c9c6a701.png',
			count: 5000,
			title: '万益蓝品牌 折扣盛世来袭'
		},
		{
			url: 'https://haowu.shenzhenlinghang.com/uploads/20240924/580881703835073e3a03a79659e77cb5.png',
			count: 5001,
			title: '万益蓝品牌 折扣盛世来袭'
		},
		{
			url: 'https://haowu.shenzhenlinghang.com/uploads/20240924/deba83e41e2823b2ae91fd54c9c6a701.png',
			count: 5002,
			title: '万益蓝品牌 折扣盛世来袭'
		}
	])

	const current = ref(0)
	const changeIndex = (e) => {
		// console.log(e.detail.current, 'e.detail.current');
		current.value = e.detail.current
	}

swiper的属性不懂的可以去看swiper | uni-app官网

相关推荐
吴传逞21 小时前
记一次uniapp微信小程序开发scss变量失效的问题
微信小程序·uni-app·scss
2501_915921431 天前
小团队如何高效完成 uni-app iOS 上架,从分工到工具组合的实战经验
android·ios·小程序·uni-app·cocoa·iphone·webview
2501_916008891 天前
uni-app iOS 文件管理与 itools 配合实战,多工具协作的完整流程
android·ios·小程序·https·uni-app·iphone·webview
!win !1 天前
uni-app项目Tabbar实现切换icon动效
小程序·uni-app
xw51 天前
uni-app项目Tabbar实现切换icon动效
前端·uni-app
2501_916007471 天前
uni-app iOS 文件调试常见问题与解决方案:结合 itools、克魔、iMazing 的实战经验
android·ios·小程序·https·uni-app·iphone·webview
豆豆(设计前端)1 天前
使用 Uni-app 打包 外链地址APK 及 iOS 注意事项
ios·uni-app
jingling5551 天前
uniapp | 解决组件样式不生效问题
前端·css·uni-app·html·学习方法
^Rocky1 天前
微信小程序(uniapp)实现连接蓝牙
微信小程序·uni-app·蓝牙连接
2501_915918412 天前
uni-app 项目 iOS 上架踩坑经验总结 从证书到审核的避坑指南
android·ios·小程序·https·uni-app·iphone·webview