当前位置:首页 > JavaScript

js实现图片渐入

2026-03-16 08:07:17JavaScript

使用CSS动画实现图片渐入

通过CSS的@keyframesopacity属性实现渐入效果,JavaScript仅用于触发动画。示例代码:

js实现图片渐入

<style>
  .fade-in {
    opacity: 0;
    animation: fadeIn 2s ease-in forwards;
  }

  @keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
  }
</style>

<script>
  document.addEventListener('DOMContentLoaded', () => {
    const img = document.getElementById('targetImage');
    img.classList.add('fade-in');
  });
</script>

纯JavaScript实现透明度渐变

通过requestAnimationFrame逐帧修改透明度,适合需要精细控制动画的场景:

js实现图片渐入

function fadeIn(element, duration = 1000) {
  let start = null;
  element.style.opacity = 0;

  function step(timestamp) {
    if (!start) start = timestamp;
    const progress = Math.min((timestamp - start) / duration, 1);
    element.style.opacity = progress;
    if (progress < 1) requestAnimationFrame(step);
  }

  requestAnimationFrame(step);
}

// 使用示例
fadeIn(document.getElementById('image'), 1500);

结合CSS Transition实现

通过JavaScript动态添加类名触发CSS过渡效果:

<style>
  .fade-transition {
    transition: opacity 1.5s ease-out;
    opacity: 1;
  }
  .fade-hidden {
    opacity: 0;
  }
</style>

<script>
  function startFade() {
    const img = document.querySelector('.fade-target');
    img.classList.remove('fade-hidden');
    img.classList.add('fade-transition');
  }

  // 页面加载时执行
  window.onload = startFade;
</script>

使用Web Animations API

现代浏览器支持的Web Animations API提供更强大的控制:

const img = document.getElementById('animated-img');
img.animate([
  { opacity: 0 },
  { opacity: 1 }
], {
  duration: 800,
  easing: 'cubic-bezier(0.4, 0, 0.2, 1)',
  fill: 'forwards'
});

注意事项

  • 所有方法都需要确保图片已加载完成,可在img.onload回调中执行动画
  • 考虑添加will-change: opacity提升动画性能
  • 移动端注意硬件加速,可添加transform: translateZ(0)
  • 渐入效果通常配合适当的延迟或触发条件使用效果更佳

标签: 渐入图片
分享给朋友:

相关文章

js实现图片滚动效果

js实现图片滚动效果

使用CSS动画实现图片滚动 通过CSS的@keyframes和animation属性实现无缝滚动效果。将图片容器设置为横向排列,通过动画平移位置。 <style> .scroll-c…

jquery图片轮播

jquery图片轮播

jQuery图片轮播实现方法 基础HTML结构 创建一个简单的HTML结构,包含轮播容器、图片列表和导航按钮。 <div class="slider"> <div class=…

vue实现图片插件

vue实现图片插件

Vue 图片插件实现方案 在 Vue 中实现图片插件通常涉及图片展示、懒加载、预览等功能。以下是几种常见的实现方式: 基础图片组件封装 创建一个可复用的图片组件,支持默认图片、加载失败处理等基础功能…

vue实现图片缓存

vue实现图片缓存

实现图片缓存的方案 在Vue项目中实现图片缓存可以通过多种方式,以下列举几种常见且有效的方法: 使用Service Worker缓存图片 通过注册Service Worker实现离线缓存,利用Cac…

vue实现图片拖动

vue实现图片拖动

Vue 实现图片拖动的步骤 使用 HTML5 拖放 API 在 Vue 中实现图片拖动可以利用 HTML5 的拖放 API。通过 draggable 属性设置元素可拖动,监听 dragstart、dr…

vue实现图片组件

vue实现图片组件

Vue 实现图片组件的方法 基础图片组件实现 创建一个基础的图片组件,支持动态传入图片路径和替代文本。在Vue项目中新建一个ImageComponent.vue文件: <template>…