当前位置:首页 > 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 等动画库可提供更复杂的浮动效果,如弹性运动或轨迹控制。

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

性能优化建议

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

js实现图片上下浮动

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

相关文章

css3怎么制作图片

css3怎么制作图片

使用 CSS3 制作图片效果 CSS3 提供了多种方法来处理和美化图片,以下是几种常见的实现方式: 圆角效果 通过 border-radius 属性可以轻松为图片添加圆角: img { bor…

vue 实现图片

vue 实现图片

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

jquery图片

jquery图片

jQuery 图片操作 jQuery 提供了多种方法来处理图片,包括加载、显示、隐藏、动画效果等。以下是一些常见的 jQuery 图片操作方法: 动态加载图片 使用 jQuery 的 attr()…

css制作图片

css制作图片

使用CSS创建图片效果 CSS可以通过多种方式实现图片的显示、处理和特效。以下是几种常见的方法: 使用background-image属性 在CSS中可以通过background-image属性将…

js 实现图片 放大

js 实现图片 放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性可以实现图片的平滑放大效果。结合 JavaScript 监听鼠标事件控制放大状态: co…

js实现图片滚动

js实现图片滚动

图片滚动的实现方法 使用CSS动画实现 通过CSS的animation和@keyframes可以实现简单的图片滚动效果。这种方法适合静态图片的无缝循环滚动。 <style> .scr…