前端火箭飞行效果

这篇博客分享了一个使用Vue框架实现的火箭图标动画效果,包括火箭上下颤动和随机长度的白条动画。通过CSS关键帧动画@keyframes,实现了火箭的移动和喷气条的颜色渐变。此外,JavaScript部分动态生成了随机长度和动画时间的白条,增强了视觉效果。
摘要由CSDN通过智能技术生成

 

效果如图,原理就是一个火箭的图标做上下颤动的动画,喷气条是一个颜色渐变的长方块,四周的白条是几十条随机长度,动画时间随机的长条,下面上代码(用vue模板写的)

html部分

<template>
  <div class="hello">
      <div class="rocket">
        <img src="./rocket.png" alt="" class="">
      </div>
  </div>
</template>

css部分

.hello{
  height: 100vh;
  background: darkslateblue;
  display: flex;
  justify-content: center;
  align-items: center;
}

.hello .rocket{
  position: relative;
  animation: move 5.5s linear forwards;
}
/*@keyframes move {*/
  /*0%{*/
    /*transform: translateY(40vh);*/
  /*}*/
  /*100%{*/
    /*transform: translateY(-43vh);*/
  /*}*/
/*}*/
@keyframes move {
  0%, 100%{
    transform: translateY(-2px);
  }
  50%{
    transform: translateY(2px);
  }
}

.hello .rocket::after{
  content: '';
  width: 7px;
  height: 70px;
  background: linear-gradient(deepskyblue,transparent);
  position: absolute;
  top: 96%;
  left: 50%;
  transform: translateX(-50%);
}

.hello i{
  width: 1px;
  height: 20px;
  position: absolute;
  left: 20px;
  top: 20px;
  background: #fff;
  animation: shake 2s linear infinite;
}

@keyframes shake {
  0%{
    transform: translateY(0px);
  }
  100%{
    transform: translateY(85vh);
  }
}

js部分

mounted(){
    this.$nextTick(()=>{
      let num = 40
      for (let i=0;i<num;i++){
        const dom = document.createElement('i')
        let height = this.rand(30,100)
        dom.style.height = height + 'px'
        dom.style.left = this.rand(1,99) + 'vw'
        dom.style.animationDuration = this.rand(5,30) / 10 + 's'
        $('.hello').append(dom)
      }
      console.log(this.rand(1,100))
    })
  },
  methods:{
    rand(m,n){
      return Math.ceil(Math.random() * (n-m+1)) + m-1
    }
  }

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值