@ctacua

Как сделать при прокрутке страницы отмечать прочитанные блоки (элементы)?

Может не совсем правильно сформулировал вопрос.
Цель в следующем.
Есть какое-то количество комментариев, надо при прокрутке страницы отрпавлять в бд информацию о том, что этот элемент просмотрен пользователем, что бы вы следующий раз показывать ему только те комментарии (или с того места) которые он не видел.

<section class='comment' comment-id=1>
коммент1
</section>
<section class='comment' comment-id=2>
коммент2
</section>
...
<section class='comment' comment-id=100>
коммент100
</section>


Подскажите в какую сторону рыть.
Как это вижу я.
1. Определяем позицию всех элементов на странице - с этим сложности, я не могу понять как это сделать.
2. После того как элемент отображается в видимой части экрана запускать выполнение скрипта - с этим проблем нет!

Спасибо.

UPD. Вот для одного элемента. А как отслеживать и реагировать на список элементов?
$(window).on('scroll', () => { 
            var blockPosition = $('.comment').offset().top, 
                  windowScrollPosition = $(window).scrollTop();
              
            if( blockPosition < windowScrollPosition ) {
                console.log('ok' + blockPosition); 
            }
        });


Как обратиться к элементу .comment который в видимой части экрана?
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ответы на вопрос 2
@ctacua Автор вопроса
Если что я сделал!

$(window).on('scroll', () => { 
          var windowScrollPosition = $(window).scrollTop();

          $( '.comment' ).each( function ( index ) {
            var blockPosition = $( this ).offset().top; 
              
            if( blockPosition < windowScrollPosition ) {
                console.log('ok' + $( this ).attr('uniqid'));
                $(this).removeClass('comment'); 
            }

          })

        });
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы