$('.btn-activate').on('click touchstart', function() {
$('.discount').each(function() {
var $this = $(this);
$({ countNum: parseInt($this.html())}).animate({
countNum: couponPercentage
},
{
duration: 1000,
easing:'linear',
step: function() {
$this.html(Math.floor(this.countNum) + '% OFF');
},
complete: function() {
$this.html(Math.floor(this.countNum) + '% OFF');
refreshIntervalId = setInterval(function() {
if ($this.css('visibility') == 'hidden') {
$this.css('visibility', 'visible');
} else {
$this.css('visibility', 'hidden');
}
}, 200);
setTimeout(function(){
clearInterval(refreshIntervalId);
if ($this.css('visibility') == 'hidden') {
$this.css('visibility', 'visible');
}
}, 2000);
}
});
});
})
在complete
块中,尝试实现闪烁动画。这有效,但在Safari Mobile上有时候setTimeout
似乎不起作用,因为闪烁的动画不会停止。
答案 0 :(得分:0)
显然这与使用.on('click touchstart',...)
有关。
当用户点击按钮时会发生某种双重触发。删除多余的touchstart
后,我无法再复制此内容。