我正在做一个简单的倒计时,当它达到零时,它将生成5个随机数,并将其逐个添加到数组中,并显示结果列表。
我的问题是,它在每个倒数计时中都会显示其他结果。
如何删除它?
我试图删除进度条的代码,这看起来像是原因,但不知道将代码转移到哪里。
谢谢,希望你能帮助我。
let time = 10;
let progress = 0; let counter = 0
var clock = $('.my-clock').FlipClock(time, {
countdown: true,
count: 1,
callbacks: {
stop: function() {
setTimeout(function(){
clock.setTime(time); // proceeding time
clock.start();
for (let i = 0; i < 5; i++) {
var arrResult = [];
setTimeout(function(){
var r = Math.floor(Math.random() * 11) + 1;
arrResult.push(r);
setTimeout(function(){
$('.numResult div:nth-child('+ (i+1) +')').html(arrResult[i]);
},200);
if(arrResult.length === 5){
$('.results ul').append('<li>'+ arrResult +'</li>');
}
},500 * i);
}
},1000);
},
interval: function() {
counter && (progress+=100/time);
counter ++;
$('.progressBar .progress').width(progress+ '%');
if(progress >= 100) {
progress = 0; counter = 0;
this.stop()
}
}
}
});
.my-clock {
text-align:center;
width:auto;
display: inline-block;
}
.center {
text-align:center;
}
.progressBar{
margin: 0 auto;
width: 400px;
height: 6px;
border-radius: 3px;
background-color: #222;
}
.progress{
background-color: green;
height: 100%;
width: 100%;
}
.numResult div{
display: inline-block;
}
.results{
width: 50px;
position: absolute;
left: 0;
right: 0;
margin: 0 auto;
}
.results ul{
padding: 0;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/flipclock/0.7.8/flipclock.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/flipclock/0.7.8/flipclock.min.js"></script>
<div class="center">
<div class="my-clock"></div>
<div class="progressBar">
<div class="progress"></div>
</div>
<div class="numResult">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
<div class="results">
<ul>
</ul>
</div>
</div>
答案 0 :(得分:1)
问题是您正在间隔函数中调用template : '<footer ng-if="LocationSvc.isTestDomain()"></footer>'
,将其删除后一切正常:
this.stop()
let time = 10;
let progress = 0; let counter = 0
var clock = $('.my-clock').FlipClock(time, {
countdown: true,
count: 1,
callbacks: {
stop: function() {
setTimeout(function(){
clock.setTime(time); // proceeding time
clock.start();
for (let i = 0; i < 5; i++) {
var arrResult = [];
setTimeout(function(){
var r = Math.floor(Math.random() * 11) + 1;
arrResult.push(r);
setTimeout(function(){
$('.numResult div:nth-child('+ (i+1) +')').html(arrResult[i]);
},200);
if(arrResult.length === 5){
$('.results ul').append('<li>'+ arrResult +'</li>');
}
},500 * i);
}
},1000);
},
interval: function() {
counter && (progress+=100/time);
counter ++;
$('.progressBar .progress').width(progress+ '%');
if(progress >= 100) {
progress = 0; counter = 0;
}
}
}
});
.my-clock {
text-align:center;
width:auto;
display: inline-block;
}
.center {
text-align:center;
}
.progressBar{
margin: 0 auto;
width: 400px;
height: 6px;
border-radius: 3px;
background-color: #222;
}
.progress{
background-color: green;
height: 100%;
width: 100%;
}
.numResult div{
display: inline-block;
}
.results{
width: 50px;
position: absolute;
left: 0;
right: 0;
margin: 0 auto;
}
.results ul{
padding: 0;
}