Как создать простой эффект параллакса

Как создать простой эффект параллакса

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

Это привлекательный эффект, и может быть применен к любому количеству слоев.
В этой статье, мы как раз и научимся создавать простой эффект параллакса.

HTML

Создаём HTML разметку, в которой у нас будет содержание страницы и отдельно div который будет содержать фон.

Home page

We are a fairly small, flexible design studio that designs for print and web. We work flexibly with clients to fulfil their design needs. Whether you need to create a brand from scratch, including marketing materials and a beautiful and functional website or whether you are looking for a design refresh we are confident you will be pleased with the results.

We offer the following services:

  • Branding
  • Logos
  • Websites
  • Web applications
  • Web development – HTML5, CSS, jQuery
  • Content Management Systems
  • Responsive Web Design
  • Illustration
  • Business cards
  • Letterheads and compliment slips
  • Flyers
  • Mailers
  • Appointment cards

Sub page

Before you choose us to take on your project you will probably want to know a bit more about us, so meet the team:

Ross has over 10 years experience in the industry. He is our Creative Director, digital designer, web designer and front-end developer. He is also pretty good with a sketchbook. Before starting the company Ross worked as a designer and studio manager for a design house who boasted a number of big name clients. Ross has brought his vast experience from this role to the work he does now.

Monica is Ross’ sister, our Art Director and specialises in graphic and print design. She has also worked with some big names and her designs have won her a number of industry awards.

Rachel and Chandler are our Junior Designers. Rachel is a web designer with knowledge of HTML and CSS and supports Ross on projects. Chandler has just finished his Graphic Design degree and enjoys continuing to learn from Monica and building his experience.

Joey and Phoebe focus on bringing new business to the company. They have won a number of big clients recently and both also have qualifications in project management to ensure that the projects run smoothly from start to finish.

CSS

CSS для создания эффекта параллакса довольна проста. В первую очередь нам необходимо установить фоновое изображение, после чего необходимо отключить прокрутку, так как скролл у нас будет применен при помощи jQuery. Для этого просто прописываем position:fixed
Затем устанавливаем width:100% и height:300% что-бы убедится что наш div больше чем размер экрана. Мы позиционируем его в верхнем левом углу и задаем ему z-index:-1 что-бы убедиться, что он оказывается под текстом.

.bg {
  background: url('/jquery/bg.jpg') repeat;
  position: fixed;
  width: 100%;
  height: 300%;
  top:0;
  left:0;
  z-index: -1;
}

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

section {
  color: #fff;
  font-family: arial;
  width: 500px;
  margin: auto;
  line-height: 20px;
  font-size: 16px;
}

Если мы сейчас прокрутим нашу страницу, то увидим что текст прокручивается а фон остаётся на месте, давайте это исправим.

jQuery

Проверяем на сколько пользователь прокрутил страницу. Создаем функцию parallax и переменную, которая будет содержать значение в пикселах прокрутки страницы.

function parallax(){
    var scrolled = $(window).scrollTop();
	$('.bg').css('top', -(scrolled) + 'px');
}

Однако «фишка» параллакс прокрутки заключается в разных скоростях, поэтому чтобы регулировать скорость умножаем значение на доли, например, 0,2 для 20%:

function parallax(){
    var scrolled = $(window).scrollTop();
    $('.bg').css('top', -(scrolled * 0.2) + 'px');
}

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

$(window).scroll(function(e){
    parallax();
});

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

comments powered by Disqus
Subscribe to RSS Feed Следить в Twitter