当前位置:首页 > 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 实现拖动图片验证功能 核心思路 拖动图片验证通常需要用户将图片拖动到指定区域或按正确顺序排列。实现时需要处理拖拽事件、验证逻辑和视觉反馈。 实现步骤 1. 基础组件结构 <templ…

vue实现图片预览

vue实现图片预览

实现图片预览功能 在Vue中实现图片预览功能可以通过多种方式完成,常见的有使用原生HTML5的<dialog>元素、第三方库如viewer.js或vue-photo-preview,以及自…

css制作图片

css制作图片

使用CSS创建图片效果 CSS可以通过多种方式实现图片的显示、处理和特效。以下是几种常见的方法: 使用background-image属性 在CSS中可以通过background-image属性将图…

vue实现无缝图片

vue实现无缝图片

实现无缝图片轮播的方法 在Vue中实现无缝图片轮播,可以通过以下步骤完成。这种方法利用Vue的响应式特性和CSS动画,确保图片切换平滑且无缝。 使用vue-awesome-swiper库 安装vue…

js实现图片移动

js实现图片移动

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

js实现保存图片

js实现保存图片

使用Canvas绘制并保存图片 在HTML中创建一个Canvas元素,通过JavaScript绘制内容后转换为图片并保存。Canvas的toDataURL方法可将画布内容转为Base64编码的图片数据…