fullpagejs и AOS - не работают вместе
Я использую fullpagejs и AOS, чтобы некоторые элементы div появлялись в нижней части страницы при прокрутке (или, по крайней мере, это то, чего я хотел бы достичь).
К сожалению, это не работает.
Да, я прочитал раздел часто задаваемых вопросов и да, scrollbar
установлен в true
а также autoscroll
установлен в false
,
Моя установка следующая:
<div class="section" id="test">
<div class="slide">
<div class="section">
{someOtherContent}
<!-- div i want to animate is down below -->
<div data-aos="slide-up">test</div>
</div>
</div>
<div class="slide"></div>
<div class="slide"></div>
</div>
$('#test').fullpage({
lazyLoading: false,
lockAnchors: true,
scrollingSpeed: 300,
fitToSection: false,
easing: 'easeInOutCubic',
easingcss3: 'ease',
loopHorizontal: false,
offsetSections: false,
resetSliders: false,
scrollOverflow: true,
scrollOverflowReset: true,
touchSensitivity: 0,
bigSectionsDestination: top,
keyboardScrolling: false,
animateAnchor: false,
recordHistory: true,
controlArrows: false,
verticalCentered: true,
responsiveWidth: 0,
responsiveHeight: 0,
sectionSelector: '.section',
slideSelector: '.slide',
scrollBar:true
//events
afterLoad: function (anchor, index( {
initArrowEventListener()
}
функция события afterLoad просто инициализирует мои ссылки в меню (на основе индекса слайда), и единственная важная часть заключается в том, что я инициализирую AOS
когда я нажимаю на одну конкретную ссылку (так как я хочу, чтобы библиотека работала только на определенной странице, а не везде.
Итак, я загружаю страницу, нажимаю, чтобы перейти на нужную мне страницу слайдера, вызывается функция (консольный журнал подтверждает это, а классы AOS применяются к соответствующему div), я вижу полосу прокрутки, но ничего, div не выскакивает снизу.
Есть идеи, что я здесь делаю не так? Спасибо
Эта ручка иллюстрирует ту же проблему. Нажмите "О программе" (функция, которая инициализирует AOS, вызывается так же, как и для заголовка, также работает), прокрутите вниз, и вы увидите много пустого пространства. Если вы осмотрите консоль, aos инициализируется на элементе (его классы применяются), но элемент никогда не скользит вверх)
1 ответ
Используйте только часть css AOS и подключите aos-animate к обратным вызовам fullpage.js.
Добавьте данные тела AOS вручную
<body data-aos-easing="ease" data-aos-duration="1000" data-aos-delay="0">
Добавьте класс aos-init
$('[data-aos]').each(function(){ $(this).addClass("aos-init"); });
Переключить класс aos-animate с помощью обратных вызовов fullpage.js
$('#fullpage').fullpage({
slidesNavigation: true,
controlArrows: false,
onLeave: function(){
$('.section [data-aos]').each(function(){
$(this).removeClass("aos-animate")
});
},
onSlideLeave: function(){
$('.slide [data-aos]').each(function(){
$(this).removeClass("aos-animate")
});
},
afterSlideLoad: function(){
$('.slide.active [data-aos]').each(function(){
$(this).addClass("aos-animate")
});
},
afterLoad: function(){
$('.section.active [data-aos]').each(function(){
$(this).addClass("aos-animate")
});
}});
Пример HTML
<div id="fullpage">
<div class="section" id="section0">
<div class="intro">
<div data-aos="fade-up">
<h1>fade me up!</h1>
</div>
</div>
</div>
<div class="section" id="section1">
<div class="slide">
<div class="intro">
<div data-aos="zoom-in">
<h1>zoom me in!</h1>
</div>
</div>
</div>
<div class="slide">
<div class="intro">
<div data-aos="flip-down">
<h1>flip me down!</h1>
</div>
</div>
</div>
</div>