当前位置:首页 > JavaScript

js图片实现倒计时

2026-01-30 16:20:13JavaScript

使用 JavaScript 实现图片倒计时

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

js图片实现倒计时

方法一:动态切换图片源

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

js图片实现倒计时

<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 动态绘制倒计时数字和图片。

<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. 倒计时结束后可以添加回调函数执行其他操作

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

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

相关文章

vue图片实现多选

vue图片实现多选

Vue 图片多选实现方法 在 Vue 中实现图片多选功能可以通过以下几种方式完成,具体取决于项目需求和复杂度。 使用 v-model 和数组存储选中状态 通过 v-model 绑定一个数组来记录选中…

js实现图片滚动

js实现图片滚动

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

js实现图片移动

js实现图片移动

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

js实现图片拖动

js实现图片拖动

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

vue实现生成图片

vue实现生成图片

Vue 实现生成图片的方法 使用 html2canvas 库 html2canvas 是一个流行的库,可以将 DOM 元素转换为 Canvas,进而生成图片。适用于 Vue 项目。 安装 html2…

vue实现图片组件

vue实现图片组件

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