当前位置:首页 > JavaScript

js实现图片上下浮动

2026-03-01 20:40:00JavaScript

使用 CSS 动画实现图片上下浮动

通过 CSS 的 @keyframestransform 属性可以实现平滑的上下浮动效果。JavaScript 仅用于动态控制动画的启停或参数调整。

.floating-image {
  animation: float 3s ease-in-out infinite;
}

@keyframes float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-20px);
  }
}
<img src="image.jpg" class="floating-image">

通过 JavaScript 动态控制浮动

使用 requestAnimationFrame 实现更灵活的浮动控制,适合需要实时调整参数的场景。

const img = document.querySelector('img');
let position = 0;
let direction = 1;
const speed = 0.05;
const range = 20;

function animate() {
  position += speed * direction;
  if (position > range || position < 0) direction *= -1;
  img.style.transform = `translateY(${position}px)`;
  requestAnimationFrame(animate);
}

animate();

结合 CSS 变量实现可配置浮动

通过 JavaScript 动态修改 CSS 变量,实现运行时调整浮动幅度和速度。

.floating-image {
  animation: float var(--float-duration) ease-in-out infinite;
  --float-range: 20px;
  --float-duration: 3s;
}

@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(var(--float-range)); }
}
document.documentElement.style.setProperty('--float-range', '30px');
document.documentElement.style.setProperty('--float-duration', '2s');

使用第三方库实现高级效果

GSAP 等动画库可提供更复杂的浮动效果,如弹性运动或轨迹控制。

js实现图片上下浮动

gsap.to(".floating-image", {
  y: -20,
  duration: 2,
  repeat: -1,
  yoyo: true,
  ease: "sine.inOut"
});

性能优化建议

对于多元素浮动,优先使用 CSS 方案。需要交互控制的场景可使用 transform 代替 top/bottom 定位以获得硬件加速。动态创建的浮动元素建议使用 CSS 类而非行内样式。

标签: 上下图片
分享给朋友:

相关文章

vue实现图片循环

vue实现图片循环

实现图片循环的基本方法 在Vue中实现图片循环通常使用v-for指令结合数组数据。以下是基础实现方式: <template> <div> <img v-fo…

css图片按钮制作

css图片按钮制作

使用纯CSS创建图片按钮 通过CSS的background-image属性可以轻松将图片设置为按钮背景。关键点在于设置合适的尺寸、去除默认边框并添加交互状态: .image-btn { widt…

vue实现网页上下滑动

vue实现网页上下滑动

Vue实现网页上下滑动的方法 使用CSS实现基础滚动 通过CSS的overflow-y属性控制容器滚动,适用于静态内容滚动: .scroll-container { height: 100vh;…

vue 实现图片

vue 实现图片

Vue 实现图片加载与展示的方法 在 Vue 中实现图片加载和展示可以通过多种方式完成,包括静态资源引用、动态绑定、懒加载等。以下是几种常见的方法: 静态资源引用 将图片放在项目的 public 或…

js图片轮播的实现

js图片轮播的实现

基础图片轮播实现 使用HTML、CSS和JavaScript实现一个简单的图片轮播效果。HTML部分定义轮播容器和图片,CSS负责样式和过渡效果,JavaScript处理逻辑。 <div cl…

js实现图片放大

js实现图片放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性实现图片放大效果。当鼠标悬停时,图片会平滑放大。 const img = document…