uni-app实现小程序无限弹幕

<view class="content">
		<view class="detail_img">
			<view class="bottom"></view>
			<view class='dmGroup' v-for="(item,index) in dmData" :key="index"
				v-bind:style="{top:item.top +'%',animationName:'dmAnimation',animationDuration:item.time + 's',animationTimingFunction:'linear',animationDelay:index*3+'s',animationIterationCount:'infinite',animationPlayState:'running'}">
				<view class='dmItem'>
					<view class='dm'>
							<view class='avatarBox'>
							<image :src='item.avatar' class='avatar' mode='aspectFit'></image>
						</view>
						<text class='content'>{{ item.desc }}</text>
					</view>
				</view>
			</view>
		</view>
	</view>
data() {
			return {
				dmData:[
					{id:1,avatar:'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7a5828f-42a8-42d1-8c2d-ef297f432cc3/abafc325-fd24-4596-84dd-240960c5011b.jpg',desc:'领取成功'},
				    {id:2,avatar:'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7a5828f-42a8-42d1-8c2d-ef297f432cc3/abafc325-fd24-4596-84dd-240960c5011b.jpg',desc:'领取成功'},
					{id:3,avatar:'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7a5828f-42a8-42d1-8c2d-ef297f432cc3/abafc325-fd24-4596-84dd-240960c5011b.jpg',desc:'领取成功'},
					{id:4,avatar:'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7a5828f-42a8-42d1-8c2d-ef297f432cc3/abafc325-fd24-4596-84dd-240960c5011b.jpg',desc:'领取成功'},
					{id:5,avatar:'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7a5828f-42a8-42d1-8c2d-ef297f432cc3/abafc325-fd24-4596-84dd-240960c5011b.jpg',desc:'领取成功'},
					{id:6,avatar:'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7a5828f-42a8-42d1-8c2d-ef297f432cc3/abafc325-fd24-4596-84dd-240960c5011b.jpg',desc:'领取成功'},
					{id:7,avatar:'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7a5828f-42a8-42d1-8c2d-ef297f432cc3/abafc325-fd24-4596-84dd-240960c5011b.jpg',desc:'领取成功'},
					{id:8,avatar:'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7a5828f-42a8-42d1-8c2d-ef297f432cc3/abafc325-fd24-4596-84dd-240960c5011b.jpg',desc:'领取成功'},
					{id:9,avatar:'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7a5828f-42a8-42d1-8c2d-ef297f432cc3/abafc325-fd24-4596-84dd-240960c5011b.jpg',desc:'领取成功'}
				]
			}
		},
		onLoad() {
			
		},
		onShow(){
			let that = this
			that.setDM(that.dmData)
		},
		methods: {
           // 处理弹幕参数
           setDM(dmData) {
           	let that = this
           	const dmArr = [];
           	const _b = dmData;
           	for (let i = 0; i < _b.length; i++) {
           		const time = Math.floor(Math.random() * 10);
           		const second = Math.floor(Math.random() * 60);
           		const _time = time < 6 ? 6 + i : time + i;
           		const top = Math.floor(Math.random() * 80) + 2;
           		const _p = {
           			id: _b[i].id,
           			desc: _b[i].desc,
           			avatar: _b[i].avatar,
           			top,
           			second,
           			time: _time,
           		};
           		dmArr.push(_p);
           	}
           	that.dmData = dmArr
           },
		}

.detail_img {
		width: 100%;
		position: relative;
		overflow: hidden;
		display: flex;
	}
	.bottom {
		width: 100%;
		height: 300rpx;
	}
	.dmGroup {
		position: absolute;
		top: 140rpx;
		left: 100%;
		z-index: 10;
		animation-timing-function: linear;
		animation-fill-mode: none;
		transform: translateZ(0);
		white-space: nowrap;
		height: 60rpx;
	}
	
	.dmItem {
		display: inline-flex;
		margin-right: 60rpx;
		white-space: nowrap;
	}
	
	.dmItem .dm {
		display: inline-flex;
		vertical-align: middle;
		align-items: center;
		position: relative;
		height: 50rpx;
		line-height: 50rpx;
		padding: 0 15rpx 0 15rpx;
		box-sizing: border-box;
		background: rgba(0, 2, 2, 0.28);
		border-radius: 25rpx;
		overflow: hidden;
		font-size: 24rpx;
		color: rgba(255, 255, 255, 1);
	}
	
	.dmItem .avatarBox {
		display: inline-block;
		position: relative;
		width: 40rpx;
		height: 40rpx;
		margin-right: 10rpx;
	}
	.dmItem .avatarBox image{
		width: 40rpx;
		height: 40rpx;
	}
	
	.dmItem .avatarBox .avatar {
		width: 40rpx;
		height: 40rpx;
		border: 0;
		border-radius: 50%;
		overflow: hidden;
	}
	
	.dmItem .dm .content {
		display: inline-block;
		max-width: 500rpx;
		height: 50rpx;
		line-height: 50rpx;
		margin-right: 10rpx;
		white-space: nowrap;
		text-overflow: ellipsis;
		overflow: hidden;
	}
	
	@keyframes dmAnimation {
		from {
			left: 100%;
		}
	
		to {
			left: -100%;
		}
	}

直接复制看效果

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Uni-app是一个开源的跨平台应用开发框架,可以同时开发出运行在多个平台的小程序、H5、App等应用。而开源小程序商城是基于Uni-app开发的一个小程序商城应用。 Uni-app开源小程序商城具有以下特点和优势: 1. 跨平台开发:使用Uni-app开发小程序商城可以同时兼容在微信小程序、支付宝小程序、百度小程序、字节跳动小程序等多个平台上运行,节省开发者的开发时间和精力。 2. 统一的开发框架和代码:Uni-app使用Vue.js作为开发框架,开发者只需编写一套代码,即可将应用发布到多个平台上。这种统一的开发方式不仅简化了开发流程,还可以提高开发效率。 3. 丰富的组件库:Uni-app提供了丰富的基础组件和扩展组件,开发者可以通过组合这些组件来快速构建功能丰富的小程序商城。同时,Uni-app还支持自定义组件的开发,满足开发者个性化的需求。 4. 多端UI适配:Uni-app提供了自动适配不同终端的能力,可以根据设备的不同特性和屏幕尺寸,自动调整页面布局和样式,保证应用在不同平台上的一致性和良好的用户体验。 5. 强大的开发工具和生态系统:Uni-app拥有本地开发工具(如HBuilderX)和云端开发工具(如UniCloud)。同时,Uni-app还有庞大的开发者社区和丰富的插件市场,可以满足开发者各种功能和需求的扩展。 总的来说,Uni-app开源小程序商城是一个功能强大、开发便捷、跨平台的小程序商城应用,为开发者提供了丰富的组件和工具,能够快速搭建高质量的小程序商城。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值