
Что нам понадобится:
- подключенный jQuery, во многих шаблонах он уже есть. Если в вашем нет и вы не знаете, как его подключить, то воспользуйтесь нашим поиском;
- немножко CSS, в частности, вот этот замечательный генаратор стилей для создания полупрозрачного фона;
- немножко JS для определения поведения элементов при прокрутке.
Не будем вас отсылать за примерами на тестовый блог, для удобства разместим всё прямо здесь. Прокрутите статью немного вниз.

Теперь в конец статьи, где вы хотите показать данный эффект (либо в шаблон после post.body, если нужно, чтобы эффект работал во всех статьях сразу) добавьте такой скрипт:
<script type="text/javascript"> (function() { var startTopPosition = 150; var scrollBy = 0.6; var parallaxed = $('.parallaxed'); $(document).scroll(function(event) { var scrollEvent = event; parallaxed.each(function(event) { var element = $(this); var parent = element.parent(); var posTop = element.parent('.parallaxed-wrapper').offset().top - $(window).scrollTop(); var posLeft = element.offset().left; var scrolledToBottom = $(window).scrollTop() + $(window).height() == $(document).height(); if (posTop < startTopPosition && !scrolledToBottom) { var newTop = (startTopPosition - posTop) * scrollBy; element.css({top : newTop}); if (posTop < -parent.data('height') * scrollBy) { element.css({visibility : 'hidden'}); } else { element.css({visibility : 'visible'}); } element.parent().css({height : parent.data('height') - newTop / scrollBy / 2}); } else if (posTop > startTopPosition) { element.css({visibility : 'visible', top : 0}); element.parent().css({height : 'auto'}); } }); }); })(); </script>Когда всё будет готово, со значениями переменных, выделенных красным цветом, можно будет поиграть, чтобы добиться нужного именно вам эффекта.
startTopPosition = 150 говорит о том, что эффект начинает действовать, как только картинка будет на расстоянии менее 150 пикселей от верхей границы экрана;
var scrollBy = 0.6 - коэффициент замедления.
Теперь про разметку статьи. Да, чтобы это всё заработало при составлении статьи нужно будет учитывать, что на что и в какой момент будет накладываться. Сама картинка должна иметь класс parallaxed и быть обёрнута в элемент с классом parallaxed-wrapper, вот так (пример из данной статьи):
<div class="parallaxed-wrapper" data-height="400"> <img class="parallaxed" width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN7Obw6VqAZfyKCbPO4IpBMkax6rLZ37XZkTGspqln6X3Fpb2lvIvnHvx-cE40fsW8a-HSzk2-Zk_wFJ1tEgeczbXLDqzS2LfOScisiGQW6UwuSCUUXrm1KlGQKwBruVx0kdgbFbXFGmE/s1600/open.jpg"/> </div>
Далее обратите внимание на data-атрибут обёртки: data-height="400" — в общем случае он должен быть равен высоте картинки, но может и отличаться от неё. Это значение так же влияет на то, как будет проявляться эффект. За обёрткой следует элемент с классом parallaxed-overlay, включаеющий в себя один или несколько элементов, которые будут перекрывать картинку. Посмотрите исходный код данной страницы, чтобы понять, о чём идёт речь.
Вот и всё, наш простенький эксперимент завершён. Параллаксьте, гуглеплюсьте, задавайте вопросы в комментариях.
Комментариев нет :
Отправить комментарий