vue-cli 水滴波浪组件

1.波浪构思

波浪形成是由中心不断向外扩散,颜色由深到浅进行。话不多说,直接上干货。

<template>
	<div class="wave">
		<span class="wave_item" v-for="item in waveNum" :style="'--i:'+item+';--j:'+waveSize+';--k:'+waveNum"></span>
	</div>
</template>
		
<script>
	export default {
		name:"wave",
		props:{
			waveNum:{
				type:Number,
				default:3,
			},
			waveSize:{
				type:Number,
				default:250
			}
		}
	}
</script>
		
<style lang="scss" scoped>
	@keyframes wave{
		from{			
			transform: translate(-50%,-50%) scale(0);
			visibility:visible;
			opacity: 1;
		}
		to{
			transform: translate(-50%,-50%) scale(1);
			visibility:visible;
			opacity: 0;
		}
	};
	.wave{
		position: relative;
		&_item{
			width:calc(1px * var(--j));
			height:calc(1px * var(--j));
			position: absolute;
			left:0;
			top:0;
			transform: translate(-50%,-50%);			
			display: inline-block;
			visibility: hidden;
			background-color: #14FFFB;
			border-radius: 50%;
			animation: wave calc(1.5s * var(--k)) linear infinite;
			animation-delay: calc(1.5s * (var(--i) - 1));
		}
	}
</style>
可以自定义波浪大小及波浪数量(waveSize,waveNum),可由父组件传递值来灵活渲染。
animation-delay做延时处理是形成波浪的关键因素。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值