仅为窗口滚动调用JS函数一次

时间:2018-04-22 18:00:15

标签: javascript jquery css function

当用户滚动到特定部分时,我有一个写文本(打字机效果)的功能。但我只想做一次。因此,如果用户第一次滚动文本,那应该是全部。但是如果用户再次滚动(并不重要),则再次调用该函数,以便一次又一次地键入文本......这里是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()方法,但它不起作用。

我会感激任何建议。

1 个答案:

答案 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();

相关问题