// Smooth appearance of sections function smoothApp( section, elemArr, styleArr, transArr, timeoutArr, num ) { if (document.querySelector(section) && window.innerWidth >= 992) { var windowPos = Math.abs(Math.round(document.querySelector('html').getBoundingClientRect().top)); var startPos = document.querySelector(section).getBoundingClientRect().top + window.pageYOffset - (window.innerHeight * num); elemArr.forEach(function(el, index){ if (document.querySelector(el)) { if (document.querySelector(el) && windowPos < startPos) { document.querySelector(el).style.transform = 'translate(' + styleArr[index] + ')'; document.querySelector(el).style.opacity = '0'; document.querySelector(el).style.transition = 'none'; } } }); window.addEventListener('scroll', function(event){ var windowPos = Math.abs(Math.round(document.querySelector('html').getBoundingClientRect().top)); var startPos = document.querySelector(section).getBoundingClientRect().top + window.pageYOffset - (window.innerHeight * num); if (windowPos > startPos){ elemArr.forEach(function(el, index){ if (document.querySelector(el)) { document.querySelector(el).style.transition = transArr[index] + 's all'; setTimeout( function(){ document.querySelector(el).style.transform = 'translate(0,0)'; document.querySelector(el).style.opacity = '1'; }, timeoutArr[index]); } }); } }); } }
section – селектор элемента, при прокрутке до которого начинается анимация
elemArr – массив со списком селекторов тех элементов, которые должны анимироваться
styleArr – массив со значениями x и y для каждого элемента из предыдущего массива, на которые будет сдвинут элемент относительно текущего положения (смещение на стартовую позицию для анимации)
transArr – массив с временем анимации в секундах для каждого элемента массива elemArr
timeoutArr – массив с временем задержки анимации в секундах для каждого элемента массива elemArr
num – значение отвечает за место срабатывания анимации относительно окна, где 1 – нижняя часть окна (т.е. анимация сработает, когда анимируемый элемент окажется в самой нижней области окна), а 0 – верхняя часть окна (т.е. анимация сработает тогда, когда элемент окажется в самом верху окна). Указывается без кавычек.
ПРИМЕЧАНИЕ: некоторые старые браузеры не умеют читать дефолтные значения аргументов функции, поэтому желательно указывать значение аргумента num непосредственно в момент вызова функции, а дефолтное значение удалить.
Тут могла быть ваша реклама.