当前位置:首页 > 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-bind 绑定图片路径 通过 v-bind(或简写为 :)动态绑定图片的…

css网页制作漂浮图片

css网页制作漂浮图片

使用CSS实现漂浮图片效果 通过CSS的animation属性和@keyframes规则可以轻松实现图片漂浮效果。以下是几种常见实现方式: 基础漂浮动画 通过关键帧定义图片的垂直移动,模拟漂浮感:…

vue实现倒计时

vue实现倒计时

Vue 实现倒计时的方法 使用 setInterval 实现基础倒计时 通过 Vue 的 data 定义倒计时时间,使用 setInterval 进行倒计时操作,并在组件销毁时清除定时器。 <…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

vue实现图片

vue实现图片

Vue 实现图片展示的方法 在 Vue 中实现图片展示可以通过多种方式完成,以下是一些常见的方法: 使用 img 标签直接引入 通过 img 标签的 src 属性直接引入本地或远程图片: <…