Css实现小球边界碰撞回弹

做一个小球,通过定位属性叠加动画的方式, 让小球在屏幕中进行运动,通过设置animation的alternate属性来设置回弹。最后,只需要设置两个运动的持续时间不同就能完成多方向的边界碰撞事件了。

代码示例:

复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      div {
        position: absolute;
        top: 0;
        left: 0;
        width: 100px;
        height: 100px;
        background-color: orange;
        border-radius: 50%;
        animation: w_move 2.5s linear infinite alternate,
          h_move 3.2s linear infinite alternate;
      }
      @keyframes w_move {
        to {
          left: calc(100vw - 100px);
        }
      }
 
      @keyframes h_move {
        to {
          top: calc(100vh - 100px);
        }
      }
    </style>
  </head>
  <body>
    <div></div>
  </body>
</html>
相关推荐
小飞侠在吗1 分钟前
vue 开发前的准备
前端·javascript·vue.js
狮子座的男孩7 分钟前
js函数高级:05、详解作用域与作用域链(作用域、作用域与执行上下文、作用域链)及相关面试题
前端·javascript·经验分享·作用域·作用域链·相关面试题·作用域与执行上下文
渣波8 分钟前
# TypeScript:给 JavaScript 穿上“防弹衣”的超能力语言
javascript·typescript
我叫张小白。8 分钟前
Vue3 标签的 ref 属性:直接访问 DOM 和组件实例
前端·javascript·vue.js·typescript·vue3
有点笨的蛋9 分钟前
JavaScript 中的面向对象编程:从基础到继承
前端·javascript
一 乐12 分钟前
购物商城|基于SprinBoot+vue的购物商城系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端
izx88812 分钟前
ES6+ 核心语法精讲:让 JavaScript 更优雅、更强大
javascript
BlackWolfSky14 分钟前
React Native学习路径与资源推荐
javascript·学习·react native
www_stdio15 分钟前
JavaScript 面向对象编程:从原型到 Class 的演进
前端·javascript
gustt16 分钟前
JavaScript 面向对象编程:从对象字面量到原型链继承,全链路彻底讲透
前端·javascript·面试