не могу решить задачу воспроизведения разовой анимации при скроле. Находил пример, только когда блок полностью в зоне видимости. Но надо как только он появляется в зоне видимости. Вот небольшой код:
$(".load-marker").addClass('load-not-active');
var $win = $(window);
var $marker = $('.load-marker');
$win.scroll(function() {
$marker.each(function() {
if ($win.scrollTop() + $win.height() >= $( this ).offset().top &&) {
...
} else {
...
}
});
});
но анимация у меня при этом срабатывает и для всех блоков выше текущего. То есть если пользователь обновит страницу и скролл останется по центру страницы, то анимация сработает и для все элементов, что выше его. А надо, чтобы анимация срабатывала только для того, что появляется в зоне видимости.
Тебе нужно определить высоту страницы, высоту элементов, высоту прокрутки и отступ элемента от края страницы. Попробуй вот такой код, здесь каждый див будет подсвечиваться только когда он полностью окажется в области видимости:
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<style type="text/css">
div {
width: 400px;
height: 400px;
margin-right: 100%;
background: #eee;
margin-bottom: 10px;
}
</style>
<script type="text/javascript">
var window_height = (window.innerHeight ? window.innerHeight : (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight));
window.addEventListener('scroll', function() {
var elements = document.querySelectorAll('div');
var top = document.body.scrollTop;
var find = false;
elements.forEach(function(el) {
var el_top = el.offsetTop;
if(el_top > top && ((el.clientHeight + el_top) < (top + window_height))) {
el.style.backgroundColor = "#999";
}
});
});
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Недавно увидел сайт, у которого внутри одного файла стилей ~7000 строк CSS кодаТа вот, вопрос: весь этот код пишется вручную или чем-то сгенерирован?
Столкнулся с такой проблемой, что у элемента textarea не получается полностью убрать отступ в Safari (iPad)Даже при margin: 0; padding: 0; border: 0; текст все равно...
При добавлении псевдоэлемента :before (добавил текст) добавленный элемент дублируетсяНе могу понять, почему