PJAX и CSS переходы
Я использую библиотеку pjax jquery для динамической загрузки контента с другой страницы на текущую страницу. То, что я хочу, это
- Добавьте класс скрытия в контейнер, чтобы применить переход.
- Сделайте вызов PJAX, чтобы загрузить содержимое в контейнер.
- Удалите класс скрыть класс, чтобы показать новый контент.
Вот мой код
$(document).on('click', 'a[data-pjax]', function(e){
var $this = $(this);
var fragment = $this.data('fragment');
var container = $this.data('container');
var $container = $(container);
var event = e;
//event.preventDefault();
// Change active link
$('.tabs-nav__link').removeClass('tabs-nav__link--active');
$this.addClass('tabs-nav__link--active');
$(document).on('pjax:beforeReplace', function(){
$container.addClass('pjax-container--hide');
});
$(document).on('pjax:complete', function(){
$container.removeClass('pjax-container--hide');
});
$.pjax.click(event, {container: container, fragment: fragment, scrollTo: false});
return false;
});
В настоящее время происходит добавление класса в контейнер, но до завершения перехода содержимое заменяется, и переходы не отображаются.
1 ответ
Если вы не измените pjax
Библиотека JS, невозможно контролировать скорость / поток.
вместо этого вы можете сделать это так
- Добавить класс скрытия в контейнер (без анимации)
- Сделайте вызов PJAX, чтобы загрузить контент в контейнер
- Удалите класс hide и добавьте класс show, который анимирует контейнер.