Анимация на чистом JS
Добрый день,
Подскажите, пожалуйста, есть лендинг, мне нужно, что бы при прокрутке страницы, когда div отображается на экране монитора, с ним происходила анимация, а именно - div чуточку поднимается вверх. Мои мысли и предположения следующие: Когда наш div будет равен текущим координатом, то мы вызываем class с css анимацией. Вы меня строго не судите, только начал, ломаю голову. Я это написал так(пример):
<!DOCTYPE html>
<html>
<head>
<style>
.second {
transform: translate(0,-150px);
-webkit-transform: translate(0,-150px);
-o-transform: translate(0,-150px);
-moz-transform: translate(0,-150px);
}
</style>
</head>
<body>
<div class="first"></div>
<div id='about' class="second"></div>
<div class="third"></div>
<script type="text/javascript">
function animateBlock (){
var elem = document.getElementById('about');
var titlestyles = document.getElementsByClassName('.second');
var scrollTop = window.pageYOffset || document.documentElement.scrollTop;
if (elem == scrollTop){
return titlestyles;
}
}
animateBlock();
</script>
</body>
</html>
|
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Спасибо
|
JohnJohn,
не понимаю вашей логики, но функцию надо ставить на прокрутку scroll |
|
Спасибо, помогло!
|
Цитата:
|
<!DOCTYPE html>
<html>
<head>
<style>
.transform {
translate(0,-150px);
-webkit-transform: translate(0,-150px);
-o-transform: translate(0,-150px);
-moz-transform: translate(0,-150px);
}
</style>
</head>
<body>
<div id='page'>
<div class="first"></div>
<div id='about'></div>
<div class="third"></div>
</div>
<script type="text/javascript">
var animateElement = document.getElementById('page');
var getPage = animateElement.getBoundingClientRect().top + window.pageYOffset;
var elementIcon = document.getElementById('about');
window.onscroll = function() {
if (animateElement.classList.contains('transform') && window.pageYOffset < getPage) {
elementIcon.classList.remove('transform');
} else if (window.pageYOffset > getPage) {
elementIcon.classList.add('transform');
}
};
</script>
</body>
</html>
|
Вы хотите чтобы анимация срабатывала постоянно как только элемент попадал в зону видимости?
|
Да, и что я ещё не продумал, так это если я захочу к примеру всем классам присвоить через
var elementIcon = document.getElementsByClassName('about');
<div class='about'></div> <div class='about'</div> <div class='about'</div> то .transform не добавится/удалится, ща буду думать....... |
| Часовой пояс GMT +3, время: 22:14. |