在 Javascript 中为倒数计时器制作动画
Animating a countdown timer in Javascript
我的项目目前有测验,它有一个使用Javascript的倒数计时器。然后,此时间在完全倒计时或用户选择多项选择答案后重置为 7 秒。
该函数正在工作,但它只是以文本形式显示剩余的时间。我想做一个倒计时的"条形图"(想想:列)(所以,如果测验给你 7 秒,那么每次条形都会减少 1/7)。jQuery和Javascript似乎是最简单的方法,所以我补充说:
var height = 50;
var timePassed = 0;
var totalSeconds = 7;
var reduceHeight = function(elem, totalSeconds){
timePassed++;
height = 100 - (100/totalSeconds * timePassed);
elem.css({height: height + "%"});
if(height > 0){
window.setTimeout(function(){
reduceHeight(elem, totalSeconds)
}, 1000)
}
}
$(document).ready(function(){
var inner = $('#inner');
reduceHeight(inner, 20);
});
该条现在出现并倒计时,但它没有以正确的速率完成 reduceHeight。
由于我正在定义 totalSeconds 变量,因此似乎应该这样做,因为高度设置为 100/总秒 * 时间流逝。重申一下,由于计时器将运行 7 秒,我希望它每过一秒就变小 1/7。
知道我哪里出错了吗?
我认为你的高度计算逻辑不正确
它应该是
height = 100 - ( ( timePassed/totalSeconds ) * 100 );
因为例如totalSeconds
是 20,timePassed
是 10那么你的身高应该是50,
height = 100 - ( ( 10/20 ) * 100 ) = 50;
这意味着您需要
- 获取
timePassed
与totalSeconds
的比率 - 然后从该比率中获取百分比
- 以便您可以从
100
中减少该百分比值
相关文章:
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 设置倒计时计时器,IE出现问题
- MobileFirst:在客户端运行计时器作业-最佳选项
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 倒计时计时器应该持续两个php页面
- 在Jquery倒计时计时器上设置每个数字的动画
- 我如何才能确保计时器设置为每天4点半,所以我不会;不用在Javascript中提及某个日期
- jQuery在'$.queue()'中在哪里做动画/计时器
- 如何使用请求动画帧暂停和重新启动秒表计时器
- 以 60fps 的速度创建秒表/计时器以及画布动画
- Javascript/jquery:谷歌地图标记 如何设置动画计时器
- 在 Javascript 中为倒数计时器制作动画
- 基于计时器的React动画
- 如何设置CSS动画计时功能的计时器
- 如何用jQuery计时器停止动画
- 当时间接近零时,通过改变计时器的颜色或动画通知用户
- 在使用JavaScript捕获照片之前延迟或显示动画照片计时器
- jQuery动画后计时器只工作一次
- Javascript-callCom方法阻止Firefox中的动画gif和计时器
- 使用帧计时器的rapha 235;l动画