当前位置:首页 > JavaScript

js实现动画移动

2026-02-03 07:52:52JavaScript

使用CSS动画实现简单移动

通过@keyframes定义动画,结合transform属性实现位移效果:

.box {
  width: 100px;
  height: 100px;
  background: red;
  animation: move 2s infinite alternate;
}

@keyframes move {
  from { transform: translateX(0); }
  to { transform: translateX(200px); }
}

使用requestAnimationFrame实现控制

通过JavaScript精确控制每一帧的动画状态:

js实现动画移动

const element = document.querySelector('.box');
let position = 0;
let speed = 2;

function animate() {
  position += speed;
  element.style.transform = `translateX(${position}px)`;

  if (position < 200) {
    requestAnimationFrame(animate);
  }
}

animate();

使用GSAP动画库

引入GSAP库实现专业级动画效果:

gsap.to(".box", {
  x: 200,
  duration: 2,
  repeat: -1,
  yoyo: true,
  ease: "power1.inOut"
});

Web Animations API实现

使用浏览器原生动画API:

js实现动画移动

const element = document.querySelector('.box');
element.animate([
  { transform: 'translateX(0)' },
  { transform: 'translateX(200px)' }
], {
  duration: 1000,
  iterations: Infinity,
  direction: 'alternate'
});

使用CSS transition实现交互动画

通过类名切换触发过渡效果:

const box = document.querySelector('.box');
box.addEventListener('click', () => {
  box.classList.toggle('moved');
});

配合CSS:

.box {
  transition: transform 0.5s ease;
}
.box.moved {
  transform: translateX(200px);
}

标签: 动画js
分享给朋友:

相关文章

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

jquery动画

jquery动画

jQuery动画基础 jQuery提供了多种动画方法,用于创建平滑的过渡效果。常用的动画方法包括animate()、fadeIn()、fadeOut()、slideUp()和slideDown()。…

vue点击实现动画

vue点击实现动画

Vue 中实现点击动画的方法 使用 CSS 过渡和 Vue 的 v-on 指令 在 Vue 模板中绑定 @click 事件,通过修改数据属性触发 CSS 过渡效果。示例代码: <templat…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…