当前位置:首页 > JavaScript

js实现图片浮动

2026-03-16 05:42:31JavaScript

实现图片浮动效果

使用JavaScript实现图片浮动效果可以通过CSS动画或动态修改样式属性完成。以下是几种常见方法:

使用CSS动画结合JavaScript

定义CSS关键帧动画,通过JavaScript控制动画的启停或参数:

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

@keyframes float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-20px); }
}
const image = document.getElementById('floating-image');
image.classList.add('float-animation');

动态修改transform属性

通过定时器动态修改图片的垂直位置:

const image = document.getElementById('floating-image');
let position = 0;
let direction = 1;

function floatImage() {
    position += 0.1 * direction;
    if (position > 10) direction = -1;
    if (position < -10) direction = 1;

    image.style.transform = `translateY(${position}px)`;
    requestAnimationFrame(floatImage);
}

floatImage();

使用GSAP库实现高级浮动

GSAP库提供更流畅的动画控制:

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

响应鼠标移动的浮动效果

实现图片随鼠标移动产生浮动效果:

js实现图片浮动

const image = document.getElementById('floating-image');
document.addEventListener('mousemove', (e) => {
    const x = e.clientX / window.innerWidth - 0.5;
    const y = e.clientY / window.innerHeight - 0.5;
    image.style.transform = `translate(${x * 20}px, ${y * 20}px)`;
});

注意事项

  • 性能优化:使用transform代替top/left定位,避免重排
  • 移动端适配:触摸事件需替换鼠标事件
  • 动画平滑度:优先使用requestAnimationFrame而非setInterval
  • 内存管理:移除事件监听器避免内存泄漏

标签: 图片js
分享给朋友:

相关文章

css3怎么制作图片

css3怎么制作图片

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

js实现vue

js实现vue

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

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现点击显示和隐藏

js实现点击显示和隐藏

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

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…