当前位置:首页 > JavaScript

js实现摆动

2026-02-01 23:03:14JavaScript

摆动动画实现方法

使用JavaScript实现摆动效果可以通过CSS动画或JavaScript直接操作元素属性完成。以下是几种常见方法:

使用CSS动画结合JavaScript

定义CSS关键帧动画:

@keyframes swing {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(15deg); }
  50% { transform: rotate(-10deg); }
  75% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}

通过JavaScript触发动画:

const element = document.getElementById('swing-element');
element.style.animation = 'swing 1s ease-in-out';

使用JavaScript定时器实现

通过requestAnimationFrame实现平滑摆动:

let angle = 0;
let direction = 1;
const speed = 0.1;
const maxAngle = 15;

function swing() {
  angle += speed * direction;
  if (angle > maxAngle || angle < -maxAngle) {
    direction *= -1;
  }
  element.style.transform = `rotate(${angle}deg)`;
  requestAnimationFrame(swing);
}

swing();

使用物理模拟摆动

实现更真实的物理摆动效果:

const element = document.getElementById('swing-element');
let angle = 0;
let velocity = 0;
const damping = 0.98;
const spring = 0.1;

function physicsSwing() {
  velocity += -angle * spring;
  velocity *= damping;
  angle += velocity;
  element.style.transform = `rotate(${angle}deg)`;
  requestAnimationFrame(physicsSwing);
}

// 初始推动
velocity = 0.5;
physicsSwing();

使用GSAP库实现

GSAP提供更强大的动画控制:

js实现摆动

gsap.to("#swing-element", {
  rotation: 15,
  duration: 0.5,
  ease: "sine.inOut",
  yoyo: true,
  repeat: -1
});

每种方法适用于不同场景,CSS动画适合简单效果,JavaScript实现提供更多控制,物理模拟适合真实感要求高的场景,GSAP适合复杂动画需求。

标签: js
分享给朋友:

相关文章

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 jQ…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…