当前位置:首页 > 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提供更强大的动画控制:

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

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

js实现摆动

标签: js
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的H…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback)…

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…