当用户滚动到特定部分时,我有一个写文本(打字机效果)的功能。但我只想做一次。因此,如果用户第一次滚动文本,那应该是全部。但是如果用户再次滚动(并不重要),则再次调用该函数,以便一次又一次地键入文本......这里是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)
}
};
正如您所看到的那样,我通过设置计数器来阻止它。我检查了多少&#39;&#39;是否将窗口滚动到此部分并在IF语句中设置值。但我觉得这还不够,而且做法很好。方法。除了这种预防方法,有时文本也是不好的。我也尝试过使用jQuery .one()
方法,但它不起作用。
我会感激任何建议。
答案 0 :(得分:1)
在if语句中获取第二个计数器并将其设置为counter2 ++然后在if语句中检查$q = $this->init()->prepare("SELECT id, service_title, time_add FROM services ORDER BY id DESC LIMIT :start, :limit");
$q->bindParam(':start', $start, PDO::PARAM_INT);
$q->bindParam(':limit', $limit, PDO::PARAM_INT);
$q->execute();