当前位置: 首页 > article >正文

CSS+JQuery 实现弹力球效果,碰到屏幕边框弹回

实现弹力球效果,碰到屏幕边框弹回,效果如下

代码如下:

<img src="../image/ball.png" alt="" class="ball">
<style>
    .ball {
        position: fixed;
        top: 50vh;
        left: 50vw;
        width: 15vw;
        height: 15vw;
        border-radius: 50%;
        z-index: 0;
    }
</style>
<script src="https://code.jquery.com/jquery-3.7.1.js"></script>
<script>
    const ball = document.querySelector('.ball');
    let posX = window.innerWidth / 2;
    let posY = window.innerHeight / 2;
    let velX = 2;
    let velY = 2;
    const friction = 0.5;
    let rotation = 0;
    const rotationSpeed = 3;

    function moveBall() {
        posX += velX;
        posY += velY;

        // Bounce off the edges
        if (posX <= 0 || posX + ball.offsetWidth >= window.innerWidth) {
            velX = -velX * friction;
            posX = Math.min(Math.max(posX, 0), window.innerWidth - ball.offsetWidth);
        }

        if (posY <= 0 || posY + ball.offsetHeight >= window.innerHeight) {
            velY = -velY * friction;
            posY = Math.min(Math.max(posY, 0), window.innerHeight - ball.offsetHeight);
        }

        rotation += rotationSpeed;
        ball.style.left = posX + 'px';
        ball.style.top = posY + 'px';
        ball.style.transform = 'rotate(' + rotation + 'deg)';

        requestAnimationFrame(moveBall);
    }

    moveBall();
</script>


http://www.kler.cn/a/403269.html

相关文章:

  • sql注入报错分享(mssql+mysql)
  • Quality minus junk论文阅读
  • 半导体工艺与制造篇5 光刻
  • async在js中是强制同步的意思吗
  • Swift 数组
  • shell--第一次作业
  • Node.js 安装与开发环境配置全指南
  • AI Large Language Model
  • SQLite Glob 子句
  • 攻防世界-web php_rce[wp]
  • django基于Python的农产品销售系统的设计与实现
  • 网络安全-------防止被抓包
  • 绕过CDN寻找真实IP
  • C++编程玩转物联网:用树莓派Pico点亮RGB彩灯世界
  • JavaEE专栏介绍
  • gitclone失败
  • vmWare虚拟环境centos7安装Hadoop 伪分布式实践
  • ✅DAY30 贪心算法 | 452. 用最少数量的箭引爆气球 | 435. 无重叠区间 | 763.划分字母区间
  • 【Maven】Nexus几个仓库的介绍
  • 鸿蒙hvigor构建任务依赖与生命周期简介
  • 02_Spring_IoC实现
  • Asp.net Core Hosted Service(托管服务) Timer (定时任务)
  • 汇编中的异常处理
  • ESP32桌面天气摆件加文心一言AI大模型对话Mixly图形化编程STEAM创客教育
  • 基于Amazon Bedrock:一站式多模态数据处理新体验
  • 大模型呼叫中心是什么?