За последние 24 часа нас посетили 22938 программистов и 1237 роботов. Сейчас ищут 748 программистов ...

Единоразовый запуск функции при скроле сверху вниз

Тема в разделе "JavaScript и AJAX", создана пользователем dvitaly, 23 окт 2021.

  1. dvitaly

    dvitaly Активный пользователь

    С нами с:
    1 окт 2008
    Сообщения:
    45
    Симпатии:
    0
    Адрес:
    Крым
    Добрый день, подскажите пожалуйста, как сделать, чтобы функция запускалась один раз и при скроле сверху вниз ?

    Код (Javascript):
    1. $.fn.isInViewport = function() {
    2.     var elementTop = $(this).offset().top;
    3.     var elementBottom = elementTop + $(this).outerHeight();
    4.  
    5.     var viewportTop = $(window).scrollTop();
    6.     var viewportBottom = viewportTop + $(window).height();
    7.  
    8.     return elementBottom > viewportTop && elementTop < viewportBottom;
    9. };
    Код (Javascript):
    1. $(window).on('resize scroll', function() {
    2.  
    3.     if ($('.progressbar-start').isInViewport()) {
    4.      
    5.         DemoProgressbars()
    6.         // do something
    7.     } else {
    8.        
    9.     }
    10. });    
     
    #1 dvitaly, 23 окт 2021
    Последнее редактирование: 23 окт 2021
  2. musicman3

    musicman3 Активный пользователь

    С нами с:
    30 июн 2019
    Сообщения:
    144
    Симпатии:
    12
    Адрес:
    Дыра на карте
    Пишем маркер на какой то скрытый div/input или sessionStorage со значением к примеру FALSE. Если функция первый раз отработала то меняем это значение на TRUE. А саму функция запускаем через IF (считать значение маркера, если FALSE то запускаем функцию).