[英]Call JS function only once for window scroll
当用户滚动到特定部分时,我有一个写文本的功能(打字机效果)。 但是我只想做一次。 因此,如果用户第一次滚动,则文本将被写入,仅此而已。 但是,如果用户再次滚动(与哪个方向无关),将再次调用该函数,以便一次又一次地键入文本……这是JS代码:
var counter = 0;
$(window).on('scroll', (function () {
counter ++;
if(counter < 80){
if ($(window).scrollTop() >= $('#anchor-form').offset().top - 200) {
$(window).scrollTop();
$('.form__icon').addClass('form--animate');
showText("Some Text to be written", 0);
}
}
}));
function showText(msg, x) {
if (x < msg.length) {
$txt_form.html(msg.substring(0, x+1));
x++;
setTimeout(function() {
showText(msg,x)
}, 50)
}
};
如您所见,我通过设置计数器来阻止它。 我已经检查了将窗口滚动到此部分并仅在IF语句内设置值时将有多少个“计数”。 但是我觉得这还不够,并且是“良好实践”的方法。 除了这种预防方法外,有时文本还会出现故障。 我也尝试过使用jQuery .one()
方法,但是它不起作用。
我将不胜感激任何建议。
在if语句中获取第二个计数器,并将其设置为counter2 ++,然后在if语句中检查count2 === 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.