Есть горизонтальный сайт который работает через slick и работает по блочно. Нужно чтобы, при скролле на следующий слайд запускалась анимация элементов на этом слайде, (facts-item-hint). Тут наглядный пример, как это должно работать https://lore1ei.github.io/ на первом слайде все нормально, а второй запускается вместе с первым, а должен только когда он находится в видимости окна браузера.
<section class="slider">
<article class="slider_item">
<div class="header">
<div class="wraper">
<div class="logo">
<img src="img/logo.png" alt="logo">
<h1>SM-Marketing</h1>
</div>
<div class="first-page">
<div class="method">
<h2>Методика №1</h2>
<p class="title-p" >по скоростному получению клиентов из интернета</p>
<p class="method-p">или <br> как с полного нуля, <br> всего через пару дней <br> начать получать первые заявки</p>
</div>
<div class="block-jq">
<div class="block-jq-item wow bounceInDown"><div>как найти новых клиентов</div></div>
<div class="block-jq-item wow bounceInRight"><div>как получать больше заявок</div></div>
<div class="block-jq-item wow bounceInUp"><div>как построить систему лидогенерации</div></div>
</div>
</div>
</div>
</div>
</article>
<article class="slider_item">
<div class="facts">
<div class="wraper wrap100">
<div class="facts-item">
<h2>Факт №1</h2>
<div class="facts-item-hint wow bounceInDown" >Заявки это сырьё для продаж <br>
Не будет заявок – не будет и продаж</div>
</div>
<div class="facts-item">
<h2>Факт №2</h2>
<div class="facts-item-hint wow bounceInDown" >Прямо сейчас ваши конкуренты используют маркетинговые <br>
инструментыи поэтому у них всё впорядке с клиентами </div>
</div>
</div>
</div>
</article>
</section>
Тут Css слайдера
.slider
width: 100%
height: 100vh
.slick-list,
.slick-track
width: 100%
height: 100%
.slider__item
width: 100%
height: 100%
Тут как работает сам сайт на слайдере
$(function () {
$('.slider').slick({
infinite: false,
arrows: false
});
$('.slider').mousewheel(function (e) {
if (e.deltaY !== 1) {
$('.slider').slick('slickNext');
} else {
$('.slider').slick('slickPrev');
}
e.preventDefault();
});
});
Пробывал с оффсетом на вертикальной прокрутки он работает нормально, а на горизонтальной все элементы сразу запускают анимацию.
<script>
new WOW({
offset: 100 }).init();
</script>
Оригинал тут - codepen.io/joxxce
Пример именно для Вашего слайдера:
$('.slider').on('init', function(e, slick) {
var $firstEl = $('.slider_item:first-child').find('[data-animation]');
doAnimation($firstEl);
});
$('.slider').on('beforeChange', function(e, slick, currentSlide, nextSlide) {
var $animationEl = $('.slider_item[data-slick-index="' + nextSlide + '"]').find('[data-animation]');
doAnimation($animationEl);
});
$('.slider').slick({
infinite: false,
arrows: false,
});
$('.slider').mousewheel(function (e) {
if (e.deltaY !== 1) {
$('.slider').slick('slickNext');
} else {
$('.slider').slick('slickPrev');
}
e.preventDefault();
});
function doAnimation(elements) {
var animationEndEvents = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend';
elements.each(function() {
var $this = $(this);
var $animationDelay = $this.data('delay');
var $animationType = 'animated ' + $this.data('animation');
$this.css({
'animation-delay': $animationDelay,
'-webkit-animation-delay': $animationDelay
});
$this.addClass($animationType).one(animationEndEvents, function() {
$this.removeClass($animationType);
});
});
}
// new WOW({
// offset: 100
// }).init();
* {
box-sizing: border-box;
}
html,
body {
padding: 0;
margin: 0;
width: 100%;
height: 100%;
}
.slider,
.slick-list,
.slick-track,
.slider__item {
width: 100%;
height: 100vh;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.2/animate.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/jquery.slick/1.5.7/slick.css" />
<script src="https://cdn.jsdelivr.net/jquery.slick/1.5.7/slick.min.js" ></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js" ></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js" ></script>
<section class="slider">
<article class="slider_item">
<div class="header">
<div class="wraper">
<div class="logo">
<img src="img/logo.png" alt="logo">
<h1>SM-Marketing</h1>
</div>
<div class="first-page">
<div class="method">
<h2>Методика №1</h2>
<p class="title-p" >по скоростному получению клиентов из интернета</p>
<p class="method-p">или <br> как с полного нуля, <br> всего через пару дней <br> начать получать первые заявки</p>
</div>
<div class="block-jq">
<div class="block-jq-item" data-animation="bounceInDown" data-delay="0.3s"><div>как найти новых клиентов</div></div>
<div class="block-jq-item" data-animation="bounceInRight" data-delay="0.3s"><div>как получать больше заявок</div></div>
<div class="block-jq-item" data-animation="bounceInUp" data-delay="0.3s"><div>как построить систему лидогенерации</div></div>
</div>
</div>
</div>
</div>
</article>
<article class="slider_item">
<div class="facts">
<div class="wraper wrap100">
<div class="facts-item">
<h2>Факт №1</h2>
<div class="facts-item-hint" data-animation="bounceInDown" data-delay="0.3s">Заявки это сырьё для продаж <br>
Не будет заявок – не будет и продаж</div>
</div>
<div class="facts-item">
<h2>Факт №2</h2>
<div class="facts-item-hint" data-animation="bounceInDown" data-delay="0.3s">Прямо сейчас ваши конкуренты используют маркетинговые <br>
инструментыи поэтому у них всё впорядке с клиентами </div>
</div>
</div>
</div>
</article>
</section>
Суть в том, что плагин wow тут не используется, а используется только animate.css.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
К примеру я разрабатываю продукт на angular 1Есть ли возможность, чтобы не открывать "инструменты разработчика" в браузере, а непосредственно...
Я создаю фон, который почему-то перекрывает позже созданный мною паттернНе могу понять, как сделать наоборот
Вот часть формыНужно сохранять выбранные значения в localStorage
Нужно получить из урл значение get параметра "data", каким образом это можно реализовать?