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官网

相关推荐
CHB14 小时前
uni-app,你的最佳vibe coding搭子
uni-app·vibecoding
怀君17 小时前
Uniapp——Android离线打包自定义基座教程
android·uni-app
李慕婉学姐21 小时前
【开题答辩过程】以《基于uni-app框架的助学管理系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
微信小程序·uni-app
爱吃的强哥21 小时前
uni-app 开发微信小程序注意点
微信小程序·小程序·uni-app
2501_915918412 天前
TCP 抓包分析在复杂网络问题中的作用,从连接和数据流层面理解系统异常行为
网络·网络协议·tcp/ip·ios·小程序·uni-app·iphone
じòぴé南冸じょうげん2 天前
APP本地调试正常,但是打包后出现账号密码解析错误,且前端未使用加密解密
小程序·uni-app·web app
快起来搬砖了2 天前
UniApp 路由配置实战:从全局守卫到 404 页面优雅处理
uni-app
5335ld2 天前
uniapp-APP端table列表左侧第一列固定、头部固定
windows·uni-app
一个假的前端男2 天前
uni-app App 端长按录音的工程级实现
uni-app
无名前端小白2 天前
uniapp 安卓离线打包, 无法调起系统安装应用
uni-app