Автор

14 06.2014
Баннер для сайта с эффектом параллакса на JS

Баннер для сайта с эффектом параллакса на JS


В последнее время стали весьма популярны интерактивные баннеры на сайтах, то есть такие которые взаимодействуют с пользователем, а соответственно заинтересовывают пользователя. Не каждый разработчик владеет технологией разработки флеша, чтобы создать интерактивное развлечение. Но что делать если все же необходимо реализовать "живой" баннер, но приложив при этом минимум усилий. Тогда Вам пригодится такой эффект как параллакс, с помощью которого можно создать весьма отзывчивый, анимированный баннер.

 

ДЕМО
ИСХОДНИКИ

 

У нас будет несколько слоев изображений, каждый из которых будет двигаться с различной скоростью при манипуляции мышкой, это будет создавать эффект объемности. И так, давайте рассмотрим основные аспекты.

Шаг 1. HTML

Для начала нам необходимо вывести все слоя для отображения, для этого у нас есть следующие параметры:

 <div class='banner'>
 <div id="parallxWrapper">
 <div class="parallxBackground" data-bind="attr: { style:'-webkit-transform:perspective(1000px) rotateY(' + relativeMouse.x() + 'deg) rotateX(' + relativeMouse.y() + 'deg);transform:perspective(1000px) rotateY(' + relativeMouse.x() + 'deg) rotateX(' + relativeMouse.y() + 'deg)' }">
 <div class="parallxLayerLogo"></div>
 <div class="parallxLayerRStar"></div>
 <div class="parallxLayerShooter"></div>
 </div>
 </div>
 </div>

Кроме этого мы устанавливаем параметры для баннера, чтобы ориентировать его в пространстве.

Шаг 2. CSS

С помощью стилей мы установим параметры наложения изображений для каждого слоя, для этого нам понадобится позиционирование и относительное перемещение изображений по двум основным осям:

html { height:100%; }
body {
min-height: 100%;
height: auto !important;
margin:0px;
}
.banner {
background-color: black;
}
#parallxWrapper {
margin:auto;
height:540px;
width:1000px;
}
.parallxBackground {
height:100%;
background-image:url("GSqh8aA.jpg");
border-radius:10px;
padding:10px;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
}
.parallxLayerLogo {
width:300px;
height:225px;
margin-top:50px;
margin-left:50px;
background-image:url("9A9KbR8.png");
position:absolute;
-webkit-transform:translateZ(90px);
-webkit-transition: all 0.2s;
transform:translateZ(90px);
transition: all 0.2s;
}
.parallxLayer:hover {
-webkit-transform:scale(1.05);
-webkit-transform:translateZ(30px);
transform:scale(1.05);
transform:translateZ(30px);
cursor:pointer;
}
.parallxLayerRStar{
width:100px;
height:90px;
margin-left:880px;
margin-top:450px;
float:right;
background-image:url("Mh37eRt.png");
position:absolute;
-webkit-transform:translateZ(20px);
transform:translateZ(20px);
}
.parallxLayerShooter{
width:1000px;
height:694px;
float:right;
background-image:url("YWCpfik.png");
position:absolute;
-webkit-transform:translateZ(50px);
transform:translateZ(50px);
}
.parallxLayerRStar:hover {
-webkit-transform:scale(1.05);
-webkit-transform:translateZ(30px);
transform:scale(1.05);
transform:translateZ(30px);
cursor:pointer;
}
h2, .h2 {
font-size: 30px;
}
h1, h2, h3 {
margin-bottom: 10px;
margin-top: 20px;
}
.lead {
font-weight: 200;
line-height: 1.4;
margin-bottom: 20px;
}
body {
color: #333333;
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
}
.col-md-8 {
min-height: 1px;
padding-left: 15px;
padding-right: 15px;
}

Кроме этого мы установили скорость в миллисекундах для каждого слоя,это позволит двигать одни слоя быстрее, а другие медленно, при этом создается больший эффект присутствия.

Шаг 3. JS

Последний шагом нам необходимо подключить управление курсивом и добавить несколько аспектов анимации для баннера:

var parallx = null;
var demoCount = 0;
 function Parallx() {
 var self = this;
 $("body").mousemove(function(e) {
parallax.mouseX(e.pageX);
 parallax.mouseY(e.pageY);
});
 self.sensitivityMultiplier = ko.observable(0.03);
 self.wrapperOffset = $('#parallxWrapper').offset();
 self.wrapperCenter = {
 x:ko.computed(function() { return self.wrapperOffset.left + ($('#parallxWrapper').width()/2) }, this),
 y:ko.computed(function() { return self.wrapperOffset.top + ($('#parallxWrapper').height()/2) }, this)
 };
 self.mouseX = ko.observable(0);
 self.mouseY = ko.observable(0);
 self.relativeMouse = {
 x:ko.computed(function() { return (self.mouseX() - self.wrapperCenter.x()) * self.sensitivityMultiplier() }, this),
 y:ko.computed(function() { return ((self.mouseY() - self.wrapperCenter.y()) * -1) * self.sensitivityMultiplier()}, this)
 };
 self.origin = {
 x:ko.computed(function() { return ((self.mouseX())/$( window ).width()) * 100 }, this),
 y:ko.computed(function() { return ((self.mouseY())/$( window ).height()) * 100 }, this)
 };
 };
$(document).ready(function() {
 parallax = new Parallx();
 ko.applyBindings(parallax);
setInterval(function() {
 if(demoCount < 130){
 parallax.mouseX(parallax.mouseX() + 10);
 demoCount+=1;
 }
 }, 40);
});

Для данного баннера использовались изображения игры GTA V.

Вот и все. Готово!

Материал взят из зарубежного источника. И представлен исключительно в ознакомительных целях.


vk.com/club.ssdru

Подписывайтесь на нашу группу в контакте vk.com/club.ssdru


Статьи по темеJS

10 04.2013
Баннер для сайта с эффектом параллакса на JS

Продолжил рассматривать интересные идеи для сайта которые помогут скрасить дизайн Вашего сайта, в данном уроке мы рассмотрим замечательный прием для экономии места для сайта, сделаем это с помощью простого аккордеона с помощью CSS3. Данное решение предоставляет большой функционал, так как этот аккордеон можно использовать с различным контентом, или применив в качестве спойлера для сайта с различными элементами. Давайте посмотрим как это все выглядит в примерах..


19 03.2013
Баннер для сайта с эффектом параллакса на JS

Какова цель таймера, для сайта? Когда мы ожидаем, какого то события, мы пытаемся найти способ показать пользователям, сколько времени осталось. Таймер дает чувство важности события, и если его связать с email полем ввода, то вы получите намного больше подписчиков на ваши новости.

Что мы ожидаем от jQuery таймера? Сегодня мы будем создавать jQuery плагин для отображения обратного отсчета времени. Он будет показывать оставшиеся дни, часы, минуты и секунды до начала события. Что же, начнем…


14 06.2013
Баннер для сайта с эффектом параллакса на JS

Эффект прозрачности - это тема данной статьи. Если вам интересно узнать, как сделать элементы html-страницы прозрачными, используя CSS или Javascript, и как добиться кросс-браузерности (одинаковой работы в разных браузерах) с учетом браузеров Firefox, Internet Explorer, Opera, Safari, Konqueror, тогда милости просим.


26 04.2013
Баннер для сайта с эффектом параллакса на JS

Порой на сайте хочется скачать изображения, нажав при этом правой кнопкой мыши на изображение, но не всегда скачанное изображение будет необходимого качества и размера. На многих сайтах содержится специальная страница с изображениями логотипа в высоком разрешении , но такие страницы бывает очень непросто найти. По этому предлагаем просмотреть урок, как создать красивый вариант загрузок изображений, средствами jQuery мы создадим модальное окно с предложениями загрузки разных вариантов изображений.


105 Публикаций

Раскрутка в соцсетях

В данном блоге описано где и как сделать накрутку групп, сообществ и личных страничек в популярных социальных сетях и тест платных сайтов занимающихся накруткой.


Перейти в Блог

О КОМПАНИИ

Studio Design существует с 2001 года. Основной нашей деятельностью до 2007 года было видеопроизводство ( видеореклама и документальные фильмы, о чем подробно описано в нашем блоге ). С 2007 года, вот уже как лет, наша основная специфика - это создание сайтов для бизнеса или частной деятельности, веб дизайн, а также поддержка и администрирование готовых проектов. Каждая выполненная нами работа - это уникальный, а самое главное, адаптивный под все современные мобильные устройства дизайн сайта. Мы готовы создать сайт с нуля для каждого клиента с любого уголка России! Мы поможем Вам в создании, как одностраничных сайтов – визиток, так и крупных интернет магазинов или корпоративных сайтов. А все наши работы, большинство из которых действуют и по сей день!

Close

Целовальников Сергей


Веб-дизайн, HTML5, CSS3, jQuery, JavaScript, Верстка.

Верстальщик с большим опытом работы. Занимаюсь созданием сайтов с 2005 года. Постоянно обучаюсь и совершенствую свои навыки. Веду свои проекты, в том числе и данный блог.

Close