利用路径动画实现不规则(曲线等)动画

利用路径动画实现不规则(曲线等)动画

  • 原理:使用 offset-path属性来定义运动路径,语法如下:
 offset-path:path(path)
 path描述元素的运动路径,可以利用工具画出你想要的路径然后直接复制,也可以手动定义。
  • 首先定义一个元素为运动的元素 我这里定义了一个三角形
  • 利用offset-path描述元素运动路径
  • 定义动画 动画属性中定义 offset-distance描述运动的距离
    -完整代码如下:
/* style代码 */
 .box{
  position: relative;
  width: 100%;
  height: 100%;
 }
 .my-svg{
  position: absolute;
  left: 0;
  top: 0;
 }
 .trangle{
  position: absolute;
  top: 0;
  left: 0;
  width: 40px;
  height: 40px;
  /* 裁剪为三角形  polygon()闭合形状*/
  clip-path: polygon(0 0,100% 50%,0 100%);
  /*  */
  background:linear-gradient(
     to bottom,
    transparent 0%,
    pink 10%,
    orange 30%,
    lightgreen 80%,
    lightblue 100%
    
  ) ;
  offset-path: path("M 100 250 Q 100 400 150 400 Q 200 400 200 250 Q 200 170 250 150 Q 300 160 320 250 Q 355 325 390 400 A 20 50 0 1 1 470 250 A 50 50 0 1 1 480 240 ");

  animation: motionA 8s linear  infinite alternate ;
 }

 @keyframes motionA {
  100%{
    offset-distance: 100%;
  }

/* html代码*/
<body>
 <div class="box">
  <!-- svg -->
  <svg class="my-svg" width="100%" height="600px"  xmlns="http://www.w3.org/2000/svg"  >
    <path stroke="black" fill="transparent" d="M 100 250 Q 100 400 150 400 Q 200 400 200 250 Q 200 170 250 150 Q 300 160 320 250 Q 355 325 390 400 A 20 50 0 1 1 470 250 A 50 50 0 1 1 480 240 "> 
    </path>
  </svg>

  <!-- ball -->
         <div class="trangle"></div>
 </div>
  

</body>


  • 最终实现效果如下:

cssMotion

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值