Как определить прокрутку снизу вверх со смещением в бесконечной прокрутке и как сделать мой скролл сканированным сканером Google? - PullRequest
0 голосов
/ 15 февраля 2019

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

Я объявил глобальную переменную my_page = 1, и вверху вниз, чтобы прокрутить вниз, я увеличиваю my_page на единицу и определяю слаг страницы и нажимаем состояние

jQuery(document).ready( function($) {
  var  url = window.location.origin + '/wp-admin/admin-ajax.php',
    canBeLoaded=true,
    bottomOffset = 2000; // the distance (in px) from the page bottom when 
    you want to load more posts
    var my_page=1;
   $(window).scroll(function(){
    var ga_history =  my_ajax_object.ga_history;

    var data = {
        'action': 'ga_infinite_scroll',
        'query': my_ajax_object.posts,
        'page' : my_ajax_object.current_page,
        //'search_results' : my_ajax_object.ga_search_results,
        'search_count' : my_ajax_object.ga_search_count,
        'search_posts': my_ajax_object.ga_search_posts,
        'search_term' : my_ajax_object.ga_search_term,
        'user_currency': my_ajax_object.user_currency,
        'reg_price_slug': my_ajax_object.reg_price_field_slug

    };


    if( $(document).scrollTop() > ( $(document).height() - bottomOffset ) && canBeLoaded == true ){//scroll bottom

            $.ajax({//limit the ajax calls
                url : url,
                data:data,
                type:'POST',                    
                beforeSend: function( xhr ){
                    // you can also add your own preloader here
                    // you see, the AJAX call is in process, we shouldn't run it again until complete
                    //console.log(data.search_term);
                    $('#ajax-loader').show();  
                    canBeLoaded = false; 
                },
                success:function(data){
                    if( data ) {
                          //history api  handling here
                          if ( ! window.history.pushState ) {
                            return;
                        }

                       my_page++;
                        var  pageSlug = window.location.protocol + '//' + ga_history.host + ga_history.path.replace( /%d/, my_page ) + ga_history.parameters;

                        if ( window.location.href != pageSlug ) {
                            history.pushState( null, null, pageSlug );
                        }
                        // Fire Google Analytics pageview
                        //if ( self.google_analytics ) {
                            var ga_url = history.path.replace( /%d/, self.page );
                            if ( 'object' === typeof _gaq ) {
                                _gaq.push( [ '_trackPageview', ga_url ] );
                            }
                            if ( 'function' === typeof ga ) {
                                ga( 'send', 'pageview', ga_url );
                            }
                        //}
                        $('#multiple-products .columns-3 .products ').find('li:last-of-type').after( data ); // where to insert posts

                        canBeLoaded = true; // the ajax is completed, now we can run it again
                        my_ajax_object.current_page++;



                        $('#ajax-loader').hide();
                    }
                    else{
                        //$('#ajax-loader').html('End of products...').delay(1000).fadeOut(); 
                        $('#ajax-loader').fadeOut(); 
                        return;
                    }

                }
            });

    }
    else {//bottom to top, this fails
        if( my_page!=1) {
            my_page--;
            var  pageSlug = window.location.protocol + '//' + ga_history.host + ga_history.path.replace( /%d/, my_page ) + ga_history.parameters;

            if ( window.location.href != pageSlug ) {
                 history.pushState( null, null, pageSlug );
            }
        }
 else{
          return;

      }
});




});

Моя структура HTML - это стандартная структура темы магазина (в магазине реализована прокрутка).Мне не удалось определить прокрутку снизу вверх в этом сценарии (код комментируется // снизу вверх).Кроме того, мне интересно, если код (прокомментированный // Fire Page Google Analytics pageview) какой-либо пользы для Google Crawler?

...