当前位置:首页 > JavaScript

js图片实现倒计时

2026-04-04 08:00:42JavaScript

实现图片倒计时的方法

使用Canvas绘制倒计时

通过Canvas动态绘制倒计时数字或图形,结合requestAnimationFrame实现动画效果。

const canvas = document.getElementById('countdownCanvas');
const ctx = canvas.getContext('2d');
let count = 10;

function drawCountdown() {
    ctx.clearRect(0, 0, canvas.width, canvas.height);
    ctx.font = '48px Arial';
    ctx.fillStyle = 'red';
    ctx.textAlign = 'center';
    ctx.fillText(count, canvas.width / 2, canvas.height / 2);

    if (count > 0) {
        count--;
        setTimeout(drawCountdown, 1000);
    }
}
drawCountdown();

使用CSS动画和图片序列

预加载一组倒计时数字图片,通过CSS动画切换显示。

<div id="countdownContainer"></div>
const container = document.getElementById('countdownContainer');
const images = Array.from({length: 10}, (_, i) => `num_${i}.png`);

let currentIndex = 9;
function updateCountdown() {
    container.style.backgroundImage = `url(${images[currentIndex]})`;
    if (currentIndex > 0) {
        currentIndex--;
        setTimeout(updateCountdown, 1000);
    }
}
updateCountdown();

使用SVG动画

通过SVG的文本和动画特性实现平滑的倒计时效果。

<svg id="countdownSvg" width="200" height="200">
    <text x="100" y="100" text-anchor="middle" font-size="48" fill="blue">10</text>
</svg>
const svgText = document.querySelector('#countdownSvg text');
let count = 10;

function animateCountdown() {
    svgText.textContent = count;
    if (count > 0) {
        count--;
        setTimeout(animateCountdown, 1000);
    }
}
animateCountdown();

使用第三方库(如GSAP)

借助动画库实现更复杂的倒计时效果。

js图片实现倒计时

import { gsap } from 'gsap';

let count = { value: 10 };
gsap.to(count, {
    value: 0,
    duration: 10,
    onUpdate: () => {
        document.getElementById('countdown').textContent = Math.ceil(count.value);
    }
});

注意事项

  • 图片资源需预加载以避免闪烁
  • 移动端注意性能优化
  • 考虑使用requestAnimationFrame替代setTimeout以获得更流畅的动画
  • 清除定时器防止内存泄漏

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

相关文章

vue实现图片轮播

vue实现图片轮播

Vue 实现图片轮播的方法 使用第三方库(推荐) 安装 vue-awesome-swiper 库,这是基于 Swiper 的 Vue 封装: npm install swiper vue-aweso…

jquery 图片

jquery 图片

jQuery 图片操作 jQuery 提供了多种方法来操作图片,包括加载、显示、隐藏、调整尺寸等。以下是一些常见的图片操作方法: 动态加载图片 使用 attr() 方法可以动态修改图片的 src 属…

vue实现图片切换

vue实现图片切换

实现图片切换的方法 使用v-for和v-bind动态绑定图片 通过v-for循环渲染图片列表,结合v-bind动态绑定图片路径,实现切换效果。 <template> <div&…

jquery图片轮播

jquery图片轮播

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

vue实现图片拼接

vue实现图片拼接

Vue 实现图片拼接的方法 使用 Canvas 进行图片拼接 Canvas 提供了强大的绘图能力,可以用于实现图片拼接功能。通过创建一个 Canvas 元素,将多张图片绘制到 Canvas 上,最终导…

vue图片实现功能

vue图片实现功能

图片上传功能实现 使用 <input type="file"> 结合 Vue 的 v-on:change 事件监听文件选择 <template> <input ty…