очистка setInterval в плагине onScreen для изменения класса в окне просмотра

0

Привет, я использую плагин onScreen для изменения класса в элементе, когда он прокручивается в viewport. Я хотел бы удалить класс через несколько секунд, даже если элемент находится в окне просмотра, и когда элемент отсутствует в области просмотра, элемент не должен иметь класс, как тот, который был разработан плагином (я думаю).

поэтому, когда пользователь прокручивает элемент, класс должен быть добавлен, чтобы показать, что это тот элемент, который ищет пользователь. Затем он должен быть удален через несколько секунд, чтобы показать, что это обычный контент на странице.

Я думаю, что в плагине я заметил, что когда элемент находится в области просмотра, setInterval постоянно добавляет класс, поэтому я попытался очистить интервал, поэтому он не будет устанавливать класс, но он не работает.

$( document ).ready( function() {
    $( function() {
        var id = setInterval( function() { ("#link").removeClass("red").filter(":onScreen").addClass("red").delay(2000).queue(function() {
           $(this).removeClass("red");
            });
        }, 1000 );

   });
   function remove() {
      if ( $("#link").hasClass("red") ) {
          setTimeout(function() { clearInterval( id ); }, 3000 )
          $("#link").removeClass("red");
      }
   }
   remove();

помогите мне удалить класс, когда элемент находится в видовом экране через несколько секунд, и после того, как был добавлен добавленный класс. Спасибо за вашу помощь.

Вот Jsfiddle.

1 ответ

0

Я бы рекомендовал вам использовать этот плагин. У этого есть два метода, которые вы можете использовать, чтобы делать вещи согласованным элементам, поскольку они входят или выходят из окна просмотра так:

$('#link').onScreen({
  doIn: function() {
    $(this).addClass('red');
  },
  doOut: function() {
    $(this).removeClass('red');
  }
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню