当前位置:首页 > JavaScript

js图片实现倒计时

2026-01-30 16:20:13JavaScript

使用 JavaScript 实现图片倒计时

在网页中实现图片倒计时效果,可以通过动态修改图片的 src 属性或结合 CSS 动画来实现。以下是两种常见的方法:

方法一:动态切换图片源

通过 JavaScript 定时器动态修改图片的 src 属性,实现倒计时效果。

<img id="countdownImage" src="image5.jpg" alt="Countdown">
const countdownImage = document.getElementById('countdownImage');
let count = 5; // 倒计时秒数

const timer = setInterval(() => {
  count--;
  countdownImage.src = `image${count}.jpg`; // 根据倒计时数字切换图片

  if (count <= 0) {
    clearInterval(timer);
    countdownImage.src = 'finalImage.jpg'; // 倒计时结束显示最终图片
  }
}, 1000); // 每秒更新一次

方法二:结合 CSS 动画

通过 CSS 动画控制图片的显示时间,JavaScript 用于触发动画。

<div id="countdownContainer">
  <img class="countdown-img" src="image5.jpg" data-time="5">
  <img class="countdown-img" src="image4.jpg" data-time="4">
  <img class="countdown-img" src="image3.jpg" data-time="3">
  <img class="countdown-img" src="image2.jpg" data-time="2">
  <img class="countdown-img" src="image1.jpg" data-time="1">
  <img class="final-img" src="finalImage.jpg">
</div>
.countdown-img {
  position: absolute;
  opacity: 0;
  animation: fadeInOut 1s forwards;
}

.final-img {
  opacity: 0;
}

@keyframes fadeInOut {
  0% { opacity: 0; }
  50% { opacity: 1; }
  100% { opacity: 0; }
}
const container = document.getElementById('countdownContainer');
const images = document.querySelectorAll('.countdown-img');
const finalImage = document.querySelector('.final-img');

images.forEach(img => {
  const delay = parseInt(img.dataset.time) * 1000;
  setTimeout(() => {
    img.style.animation = `fadeInOut 1s forwards`;
  }, (5 - parseInt(img.dataset.time)) * 1000);
});

setTimeout(() => {
  finalImage.style.opacity = '1';
}, 5000); // 5秒后显示最终图片

方法三:Canvas 绘制倒计时

使用 Canvas 动态绘制倒计时数字和图片。

js图片实现倒计时

<canvas id="countdownCanvas" width="400" height="400"></canvas>
const canvas = document.getElementById('countdownCanvas');
const ctx = canvas.getContext('2d');
let count = 5;

const backgroundImage = new Image();
backgroundImage.src = 'background.jpg';

const drawCountdown = () => {
  ctx.clearRect(0, 0, canvas.width, canvas.height);
  ctx.drawImage(backgroundImage, 0, 0, canvas.width, canvas.height);

  ctx.font = 'bold 100px Arial';
  ctx.fillStyle = 'white';
  ctx.textAlign = 'center';
  ctx.fillText(count, canvas.width/2, canvas.height/2);

  count--;

  if (count >= 0) {
    setTimeout(drawCountdown, 1000);
  } else {
    ctx.clearRect(0, 0, canvas.width, canvas.height);
    const finalImage = new Image();
    finalImage.src = 'final.jpg';
    finalImage.onload = () => {
      ctx.drawImage(finalImage, 0, 0, canvas.width, canvas.height);
    };
  }
};

backgroundImage.onload = drawCountdown;

注意事项

  1. 图片资源需要提前准备好,命名要有规律(如 image1.jpg, image2.jpg 等)
  2. 确保图片加载完成后再开始倒计时,可以监听图片的 onload 事件
  3. 移动端需要考虑性能优化,避免过多图片同时加载
  4. 倒计时结束后可以添加回调函数执行其他操作

以上方法可以根据实际需求选择或组合使用,第一种方法最简单直接,第二种方法视觉效果更丰富,第三种方法灵活性最高。

标签: 倒计时图片
分享给朋友:

相关文章

jquery图片

jquery图片

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

h5实现图片压缩

h5实现图片压缩

使用Canvas API压缩图片 HTML5的Canvas API可以通过调整画布尺寸和图像质量来实现图片压缩。创建一个Canvas元素,将图片绘制到Canvas上,再通过toDataURL或toBl…

js 实现图片 放大

js 实现图片 放大

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

js实现图片移动

js实现图片移动

使用CSS和JavaScript实现图片移动 方法一:使用CSS动画结合JavaScript控制 通过CSS定义动画关键帧,JavaScript动态添加或移除动画类。 /* CSS部分 */ .m…

vue实现图片放大

vue实现图片放大

Vue 实现图片放大功能 实现图片放大功能可以通过多种方式,以下介绍几种常见的方法: 使用 CSS 和 Vue 事件绑定 通过 Vue 的事件绑定和 CSS 的 transform 属性实现简单的图…

vue实现动态轮播图片

vue实现动态轮播图片

使用 Vue 实现动态轮播图片 安装依赖 确保项目中已安装 Vue 和必要的库如 vue-awesome-swiper 或 swiper。通过以下命令安装: npm install swiper v…