Ajax Loader

Рейтинг: 1Ответов: 1Опубликовано: 24.12.2014

Имеется вывод постов с подгрузкой на WP, по типу Вк или Facebook. Нужно сделать появление loader.gif при прокрутке страницы вниз, именно в тот момент, когда подгружаются новые посты. Опробовал многие готовые решения, но ничего не удалось применить. Как можно сделать?

Код подгрузчика:

jQuery(function($){
    $(window).scroll(function(){
        var bottomOffset = 2000; // отступ от нижней границы сайта, до которого должен доскроллить пользователь, чтобы подгрузились новые посты
        var data = {
            'action': 'loadmore',
            'query': true_posts,
            'page' : current_page
        };
        if( $(document).scrollTop() > ($(document).height() - bottomOffset) && !$('body').hasClass('loading')){
            $.ajax({
                url:ajaxurl,
                data:data,
                type:'POST',
                beforeSend: function( xhr){
                    $('body').addClass('loading');
                },
                success:function(data){
                    if( data ) { 
                        $('#true_loadmore').before(data);
                        $('body').removeClass('loading');
                        current_page++;
                    }
                }
            });
        }
    });
});

Ответы

▲ 7Принят

Все просто. У $.ajax есть такие штуки, как beforeSend (до отправки запроса) и complete (когда запрос сделан)

$.ajax({
    beforeSend: function() {
        $('#loader').show();
    },
    complete: function() {
        $('#loader').hide();
    }
});