Статьи

Достигните расширяемого, многослойного эффекта параллакса с прокруткой за несколько минут

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

Вот окончательная версия того, что вы будете создавать, и файлы ресурсов для этого:

Демо: Скачать (ZIP — 700k)

Этот эффект параллакса был первоначально разработан Джонатаном Николом в Pixel Acres / F6 Design . Я не мог бы собрать это без его работы и хочу удостовериться, что признаю его тяжелую работу.

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

Мне нравится эта версия Parallax (и я пробовал десятки ), потому что она имеет три независимых слоя, которые вы можете легко настроить. Вы можете легко добавлять текст или использовать изображения, хотя в этом руководстве будут использоваться изображения в качестве фона, плавающие элементы.

Если вы хотите использовать свои собственные изображения, убедитесь, что они являются прозрачными файлами PNG. Я не проверял формат GIF, и файлы JPG не будут прозрачными. Если вы не используете идеальные квадраты на фоновых изображениях, вам понадобится прозрачный формат PNG.

Так что, держись и повеселись, пока мы прокручиваем интересную кроличью нору эффектов параллакса.

Шаг 1: Скачать файлы

Для начала загрузите ресурсы, необходимые для завершения урока. Вам понадобятся четыре готовых файла:

  1. jQuery 1.6 — движок jQuery, который заставляет все работать
  2. Modernizr.js — эффект jQuery, который дает хороший эффект плавной прокрутки при нажатии на элементы навигации
  3. Parallax.js — эффект jQuery, который заставляет эффект Parallax работать
  4. Main.css — мой файл CSS

Другие файлы включают изображения, которые я использовал для этого урока, которые вы (надеюсь) замените позже. Скачайте полную сборку файлов по ссылке выше.

Шаг 2: Head Content

Откройте новый документ HTML в вашем любимом HTML или текстовом редакторе. Вы собираетесь скопировать и вставить следующий код:

<html>
<head>
<title>Parallax Tutorial - Start Here</title>
<meta name="description" content="Parallax Tutorial" />
<link rel="stylesheet" media="all" href="css/main.css" />
<script src="js/modernizr.custom.37797.js"></script>
<script src="js/jquery-1.6.1.min.js"></script>
<script src="js/parallax.js"></script>
</head>
<body>
</body>
</html>

Это не даст вам много, но это критическое начало. В разделе заголовка HTML у нас есть ссылки на наши файлы, поэтому убедитесь, что вы сохранили этот файл HTML в главной папке с файлом CSS в подпапке с именем «css», а JavaScript — в папке с именем «js». », Или это не сработает. Откройте файл «01-start-here.html» из загрузки, чтобы дважды проверить свою работу.

Шаг 3: Добавление контента

Теперь мы можем начать добавлять контент в HTML. Этот код находится между тегами <body>:

<div id="wrapper">
<div id="content">
<!-- Page #1 -->
<article id="page-number-1">
<header>
<h1>Parallax Demo</h1>
</header>
<p>This is a sample Parallax scrolling site with three pages. You can add all kinds of extra navigation elements on your own time, but I just wanted a simple, ready to rollout, vertical parallax system that I could easily implement and edit later.</p>
<nav class="next-prev">
<hr />
<a class="next page-number-2" href="#page-number-2">Next</a>
</nav>
</article>
<!-- Page #2 -->
<article id="page-number-2">
<header>
<h1>Wow!</h1>
</header>
<p>Did you like that nice, smooth movement? Pretty slick, eh? You can either scroll or click on the navigation elements below. It's your decision. You're an adult. I'll leave that up to you. </p>
<nav class="next-prev">
<a class="prev page-number-1" href="#page-number-1">Prev</a>
<hr />
<a class="next page-number-3" href="#page-number-3">Next</a>
</nav>
</article>
<!-- Page #3 -->
<article id="page-number-3">
<header>
<h1>More stuff...</h1>
</header>
<p>You can add as many pages as you want, but it takes some work to get all the CSS, and JS working together. Just remember that each page you add needs to have this HTML, the CSS, and the parallax.js file updated with the new page. Don't worry, you'll be a pro before you know it!</p>
<nav class="next-prev">
<a class="prev page-number-2" href="#page-number-2">Prev</a>
<hr />
<a class="next page-number-4" href="#page-number-4">Next</a>
</nav>
</article>
<!-- Page #4 -->
<article id="page-number-4">
<header>
<h1>Last page!</h1>
</header>
<p>Of course, there are all kinds of HTML and JS additions you can make. From navigation bars to the Lettering.js jQuery plugin, there's no limit. This parallax technique only relies upon the basic CSS and lightweight jQuery plugins to create the effect. Time for you tweak it and make it your own!</p>
<nav class="next-prev">
<a class="prev page-number-3" href="#page-number-3">Prev</a>
<hr />
</nav>
</article>
</div>

Теперь нам нужно медленно спуститься и посмотреть на то, что мы только что сделали. Есть несколько предопределенных элементов, которые я использую, которые мы должны изучить.

  • Каждая страница вашего сайта должна начинаться с <article> для правильного определения содержания.
  • Раздел заголовка каждой страницы обозначается тегом <header>. Здесь страница будет отдыхать при прокрутке после нажатия одной из кнопок навигации.
  • <nav> — это место для размещения навигационных ссылок. Конечно, вы можете создать свой собственный, но это уже готовые версии.

Чтобы добавить новую страницу, вам нужно отредактировать три файла:

  • HTML-документ
    • Добавьте новую страницу, содержащую, например, <article> и уникальный идентификатор — id = ”page-number-5 ″.
    • Обновите элемент навигации предыдущей страницы, чтобы включить новую страницу. Ссылка на имя, которое вы дали.
  • CSS документ
    • В разделе «контентная статья» добавьте свой идентификатор страницы в список
    • Добавьте новый тег # page-number-5 (или как вы назвали свою страницу) под тегом «content article». Сделайте положение абсолютным и высоту с шагом 1090 пикселей — так, пятая страница будет высотой: 4360 пикселей; В качестве примера.
  • Parallax.js
    • Добавьте новую функцию для новой страницы (не волнуйтесь! Это проще, чем кажется!)
    • Просто скопируйте и вставьте функцию «page-number-4» и переименуйте идентификатор внутри нее.

Проверьте готовую версию этого шага в файле «02-add-content.html» из загружаемых ресурсов.

Шаг 4: Добавление фоновых изображений

Под своим контентом и над закрывающим тегом </ body> добавьте этот код:

<div id="parallax-bg1">
<img id="bg1-1" src="img/cloud1.png" alt="cloud"/>
<img id="bg1-2" src="img/cloud2.png" alt="cloud"/>
<img id="bg1-3" src="img/cloud1.png" alt="cloud"/>
<img id="bg1-4" src="img/cloud2.png" alt="cloud"/>
<img id="bg1-5" src="img/cloud1.png" alt="cloud"/>
</div>

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

Чтобы добавить новое изображение, вам нужно будет продублировать и переименовать новый атрибут CSS для каждого изображения.

Смотрите файл «03-background-images.html» в загрузке для завершения шага.

Шаг 5: Добавление изображений Midground

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

<div id="parallax-bg2">
<img id="mg2-1" src="img/cloud3.png" alt="cloud"/>
<img id="mg2-2" src="img/cloud3.png" alt="cloud"/>
<img id="mg2-3" src="img/cloud3.png" alt="cloud"/>
<img id="mg2-4" src="img/cloud3.png" alt="cloud"/>
<img id="mg2-5" src="img/cloud3.png" alt="cloud"/>
<img id="mg2-6" src="img/cloud3.png" alt="cloud"/>
<img id="mg2-7" src="img/cloud3.png" alt="cloud"/>
</div>

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

Вы можете редактировать положение каждого элемента в файле CSS в разделе «изображение среднего плана». Смотрите последний фрагмент в файле «04-midground-images.html» в загрузке.

Шаг 6: Добавление изображений переднего плана

Вы должны быть чемпионом в этом сейчас. То же, что шаги 5 и 6:

<div id="parallax-bg3">
<img id="fg3-1" src="img/twitter.png" width="529" height="386" alt="Big freaking Twitter bird"/>
<img id="fg3-2" src="img/facebook.png" width="603" height="603" alt="Facebook in your face!"/>
<img id="fg3-3" src="img/linkedin.png" width="446" height="446" alt="LinkedIn logo"/>
<img id="fg3-4" src="img/landscape.png" width="1104" height="592" alt="Landscape foreground"/>
<img id="fg3-5" src="img/design-festival-logo.png" width="135" height="136" alt="Bluified Design Festival logo"/>
</div>

Еще раз, положение может быть легко отредактировано для этих изображений в документе CSS в разделе «изображения переднего плана».

Смотрите готовый шаг в файле «05-foreground-image.html» с файлами.

Шаг 7. Добавление элементов навигации (необязательно)

Я только добавляю этот шаг, потому что Джонатан Николь проделал такую ​​большую работу, что я подумал, что стоит сохранить его идею в этом уроке. Вы можете разместить этот код в любом месте внутри <body>, но мне нравится держать его сверху (но под открывающим div содержимого):

<nav id="primary">
<ul>
<li>
<h1>Intro</h1>
<a class="page-number-1" href="#page-number-1">View</a>
</li>
<li>
<h1>Wow!</h1>
<a class="page-number-2" href="#page-number-2">View</a>
</li>
<li>
<h1>More stuff...</h1>
<a class="page-number-3" href="#page-number-3">View</a>
</li>
<li>
<h1>Last page!</h1>
<a class="page-number-4" href="#page-number-4">View</a>
</li>
</ul>
</nav>

Если вам нужно больше страниц, это так же просто, как добавить еще один <li> и ваш контент. Убедитесь, что якорный текст обновлен правильно, и все готово.

Версия с навигационным кодом «06-navigation.html» в файлах ресурсов.

Вывод

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