javascript - 如何使用存储在数组中的字符串长度在 Javascript 中使用倒计时
问题描述
var allQuestionsArray = ["question1 asffdsdsfd","question2 asdffffsd","question3 asddda","question ajsdjj 4"];
var loop = [];
$.each(allQuestionsArray, function (index, key) {
loop = key.length;
timeOut(loop);
setTimeout(function () {
$(#question-' + index + '-section').fadeOut(),
$('#question-' + index + '-section').fadeIn();
}, (loop * 1000));
});
function startTimer(duration, display) {
console.log(duration);
var start = Date.now(),
diff,
minutes,
seconds;
function timer() {
// get the number of seconds that have elapsed since
// startTimer() was called
if(duration <= 0){
display.textContent = "00:00";
}else{
diff = duration - (((Date.now() - start) / 1000) | 0);
//console.log(diff);
// does the same job as parseInt truncates the float
minutes = (diff / 60) | 0;
seconds = (diff % 60) | 0;
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
display.textContent = minutes + ":" + seconds;
if (diff <= 0) {
start = Date.now() + 1000;
}
}
};
timer();
setInterval(timer, 1000);
}
function timeOut(limit) {
display = document.querySelector('#time');
startTimer(limit, display);
}
1-我对这段代码的期望是它应该生成一个倒计时并且需要隐藏所有问题部分,除了一个它应该工作到循环完成的问题部分。
2-我希望我的代码获取存储在数组中的每个字符串的长度并将其分配给计时器 == "timeOut(string.length)" 这就是我的意思。
3-问题是当代码执行时,计时器根据最后一个字符串的长度启动“question ajsdjj 4”不是从数组的第一个字符串开始。
我想在定时器完成时从数组的第一个字符串启动定时器,然后它必须移动到数组的第二个字符串,依此类推。
解决方案
推荐阅读
- ios - TabView 中的 SwiftUI 奇怪的动画行为
- django - 在谷歌应用引擎标准环境上部署 django 应用程序后,我在哪里可以执行 celery 命令
- javascript - 在继续下一个功能之前停止播放声音
- java - 我对 java 函数签名有疑问
- nginx - Nginx如何按位置路由到反向代理
- javascript - 如何将这个特定的 js 数组转换为 js 对象?
- c++ - 如何在 C++ 中采用这种 STDIN 输入?
- css - 如何允许在底部制作页脚但不让它覆盖内容
- php - 我可以根据类别在 WooCommerce 商店页面和产品中设置不同的排序吗
- java - 按第一列然后按第二列对二维数组进行排序