当前位置:首页 > JavaScript

js实现上下动

2026-04-07 10:30:35JavaScript

实现元素上下移动的 JavaScript 方法

使用 CSS 动画结合 JavaScript 控制

通过 CSS 定义关键帧动画,JavaScript 动态添加或移除动画类。CSS 部分定义 @keyframes 上下移动效果:

@keyframes moveUpDown {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-20px); }
}
.up-down-animation {
  animation: moveUpDown 1s infinite;
}

JavaScript 部分控制动画的启停:

js实现上下动

const element = document.getElementById('targetElement');
element.classList.add('up-down-animation');

// 停止动画
// element.classList.remove('up-down-animation');

使用 JavaScript 定时器实现

通过 setInterval 动态修改元素的 toptransform 属性实现周期性移动。需确保元素定位方式为 relativeabsolute

js实现上下动

const element = document.getElementById('targetElement');
let position = 0;
let direction = 1;
const speed = 2;

setInterval(() => {
  position += direction * speed;
  if (Math.abs(position) >= 20) direction *= -1;
  element.style.transform = `translateY(${position}px)`;
}, 16);

使用 requestAnimationFrame 优化性能

适合需要平滑动画的场景,避免定时器可能引起的卡顿:

const element = document.getElementById('targetElement');
let position = 0;
let direction = 1;
const speed = 0.1;

function animate() {
  position += direction * speed;
  if (Math.abs(position) >= 20) direction *= -1;
  element.style.transform = `translateY(${position}px)`;
  requestAnimationFrame(animate);
}
animate();

注意事项

  • 使用 transform 比直接修改 top/left 性能更好
  • 移动元素需设置 position: relativeabsolute
  • 移动距离和速度可通过参数调整
  • 清除动画时需调用 cancelAnimationFrameclearInterval

标签: 上下js
分享给朋友:

相关文章

js实现轮播

js实现轮播

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

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <…

js图片上传实现

js图片上传实现

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API实现基础图片上传功能。HTML部分需要设置accept="image/…

js实现文件夹

js实现文件夹

使用JavaScript创建文件夹 在浏览器端的JavaScript中无法直接操作文件系统创建文件夹,这是出于安全考虑。但在Node.js环境中可以通过文件系统模块(fs)实现。 Node.js中使…