JavaScript实战 - 一个能够做圆周运动的模型

一个能够做圆周运动的模型

    • [HTML 文件](#HTML 文件)
    • [JavaScript 文件](#JavaScript 文件)
    • 总结

作者:逍遥Sean

简介:一个主修Java的Web网站\游戏服务器后端开发者

主页:https://blog.csdn.net/Ureliable

觉得博主文章不错的话,可以三连支持一下~ 如有需要我的支持,请私信或评论留言!

下面是一个简单的示例,展示如何使用 HTML 和 JavaScript 来实现一个圆周运动的动画效果。这个例子将创建一个圆形图形,在页面上以圆周运动的方式移动。

HTML 文件

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Circle Motion Animation</title>
    <style>
        #circle {
            width: 50px;
            height: 50px;
            background-color: blue;
            border-radius: 50%;
            position: absolute;
        }
    </style>
</head>
<body>
    <div id="circle"></div>

    <script src="circleAnimation.js"></script>
</body>
</html>

JavaScript 文件

javascript 复制代码
// 获取圆形元素的引用
const circle = document.getElementById('circle');

// 设定初始位置和速度
let centerX = 150;  // 圆心初始 x 坐标
let centerY = 150;  // 圆心初始 y 坐标
const radius = 100; // 圆的半径
let angle = 0;      // 初始角度
const speed = 0.02; // 角速度

// 定义动画函数
function animateCircle() {
    // 计算新的位置
    const x = centerX + radius * Math.cos(angle);
    const y = centerY + radius * Math.sin(angle);

    // 更新圆的位置
    circle.style.left = x + 'px';
    circle.style.top = y + 'px';

    // 增加角度,以产生圆周运动
    angle += speed;

    // 通过 requestAnimationFrame() 实现动画循环
    requestAnimationFrame(animateCircle);
}

// 调用动画函数开始动画
animateCircle();

总结

  1. HTML 部分:
  • 使用 < div > 元素作为圆形的图形。
  • 通过 CSS 样式设置 border-radius 为 50%,使其成为一个圆形。
  1. JavaScript 部分:
  • 获取圆形元素的引用,通过 getElementById 方法。
  • 设定圆心的初始位置和半径。
  • 使用 Math.cos() 和 Math.sin() 函数来计算圆周运动的 x 和 y 坐标。
  • 使用 requestAnimationFrame() 来实现流畅的动画效果。
  1. 动画实现:
  • animateCircle 函数中计算新的圆心位置,并更新圆形元素的 left 和 top 样式。
  • 使用 requestAnimationFrame() 递归调用 animateCircle 函数,实现持续的动画效果。

这个例子展示了如何利用 JavaScript 和 HTML

来创建一个简单的圆周运动动画。你可以根据需要修改半径、速度、初始位置等参数,以及添加更多的样式和交互效果来丰富这个例子。

相关推荐
少控科技2 小时前
QT新手日记024 - QT001程序代码
开发语言·qt
码农水水7 小时前
国家电网Java面试被问:TCP的BBR拥塞控制算法原理
java·开发语言·网络·分布式·面试·wpf
浮尘笔记7 小时前
Go语言临时对象池:sync.Pool的原理与使用
开发语言·后端·golang
集成显卡7 小时前
Bun v1.3.6 发布:内置 Tarball 归档支持、JSONC 解析、Bundle 分析增强等重磅更新!
javascript·新版本·bun.js
咕噜咕噜啦啦7 小时前
Java期末习题速通
java·开发语言
奔跑的web.7 小时前
TypeScript Enum 类型入门:从基础到实战
前端·javascript·typescript
BHXDML8 小时前
第七章:类与对象(c++)
开发语言·c++
盐真卿8 小时前
python2
java·前端·javascript
梦梦代码精8 小时前
BuildingAI vs Dify vs 扣子:三大开源智能体平台架构风格对比
开发语言·前端·数据库·后端·架构·开源·推荐算法
又见野草9 小时前
C++类和对象(中)
开发语言·c++