小球边界碰撞回弹css

html:

<div class="ball">
    <span>球</span>
</div>

style:

  .ball {
    position: absolute;
    top: 0;
    left: 0;
    width: 100px;
    height: 100px;
    //初始化大小和出现位置
    background: linear-gradient(to right, red, orange, yellow, green, blue, indigo);
    //颜色
    border-radius: 50%;
    //正方形盒子变成圆
    animation: w_animation 2.5s ease-in-out infinite alternate,
      h_animation 3.2s linear infinite alternate;
  }

  .ball:hover {
    animation-play-state: paused;
    /* 鼠标悬停时暂停动画 */
  }

  @keyframes w_animation {
    to {
      left: calc(100vw - 100px);
    }
    //100vw可视化宽度
  }

  @keyframes h_animation {
    to {
      top: calc(100vh - 100px);
    }
  }

注解:

  • animation: 这是一个 CSS 属性,用于指定要应用到元素的动画效果。
  • w_animation: 这是动画的名称,可以自定义。在这里,w_animation 是动画的名称标识符。
  • 2.5s: 这是动画的持续时间,指定动画完成一个周期所需的时间,这里是 2.5 秒。
  • linear: 这是动画的时间函数,表示动画以相同的速度进行。在这里,动画是匀速的。
  • ease-in-out 会在动画开始和结束时逐渐加速和减速,而在动画中间阶段会保持一个中等速度。这种效果可以让动画看起来更自然,避免了突然开始或结束时的突兀感。
  • infinite: 这是动画播放次数,指示动画应该无限循环播放。
  • alternate: 这表示动画应该在每次迭代之间反向播放。动画往复运动,交替进行。

综合起来,这段代码定义了一个名为 w_animation 的动画,持续 2.5 秒,以匀速往复无限次地播放,并且在每次迭代之间交替反向播放。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值