Событие jQuery TouchMove работает только на прокрутке вверх

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

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

Как только пользователь прокручивает вверх, объявление загружается. Зачем??

Функция, которая вызывается для размещения рекламы на странице:

function generateMpu(slotName,instantRefresh) {

        var slot = googletag.defineSlot('/199874932/Tech_MPU', [[300, 250], [300, 600]], slotName).

        var refreshedMobile = false;

        jQuery('body').bind('touchmove', function(e) { 

             var inViewMobile = isScrolledIntoView('#'+slotName);

              if (inViewMobile == true && !refreshedMobile) {

                googletag.cmd.push(function() {
                  googletag.display(slotName);
                  googletag.pubads().refresh([slot]);
                });


                refreshedMobile = true; // Refresh the ad only once.

              }
        });
}

Функция, используемая для определения возможности просмотра рекламного контейнера: (используется функцией выше)

function isScrolledIntoView(elem)
{
    var $elem = jQuery(elem);
    var $window = jQuery(window);

    var docViewTop = $window.scrollTop();
    var docViewBottom = docViewTop + $window.height();

    var elemTop = $elem.offset().top;
    var elemBottom = elemTop + $elem.height();

    return ((elemTop <= docViewBottom) && (elemBottom >= docViewTop));

}

0 ответов

Другие вопросы по тегам