当前位置:首页 > JavaScript

js实现图片上下浮动

2026-03-01 20:40:00JavaScript

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

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

js实现图片上下浮动

.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 实现更灵活的浮动控制,适合需要实时调整参数的场景。

js实现图片上下浮动

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 类而非行内样式。

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

相关文章

网页制作css图片切换

网页制作css图片切换

CSS图片切换的实现方法 使用CSS实现图片切换可以通过多种方式完成,以下是几种常见的方法: 纯CSS轮播图 通过CSS动画和关键帧实现自动轮播效果。定义一个容器,内部放置多个图片,利用anima…

vue2实现图片懒加载

vue2实现图片懒加载

实现图片懒加载的方法 在Vue2中实现图片懒加载可以通过以下方法完成,核心原理是监听图片是否进入可视区域,再动态加载图片资源。 使用IntersectionObserver API Intersec…

vue实现上下布局

vue实现上下布局

实现上下布局的基本结构 在Vue中实现上下布局通常需要使用CSS的flexbox或grid布局方式。以下是一个基础的上下布局实现示例: <template> <div clas…

js实现图片拖动

js实现图片拖动

实现图片拖动的步骤 使用JavaScript实现图片拖动功能,可以通过HTML5的拖放API结合事件监听实现。以下是具体方法: 设置HTML结构 为图片添加draggable属性,并设置唯一ID以便…

jquery图片放大

jquery图片放大

jQuery图片放大实现方法 使用jQuery实现图片放大功能可以通过多种方式完成,以下是几种常见且实用的方法: 使用jQuery Zoom插件 jQuery Zoom插件是一个轻量级的库,专门用于…

vue实现图片拼接

vue实现图片拼接

Vue 实现图片拼接的方法 使用 Canvas 进行图片拼接 Canvas 提供了强大的绘图能力,可以用于实现图片拼接功能。通过创建一个 Canvas 元素,将多张图片绘制到 Canvas 上,最终导…