Реализация, аналог и адаптация для «чистого» JavaScript'а JQuery функции JQuery(); и прилегающие к ней

| 29.09.2014

Добрый день, дорогие читатели! Наш сегодняшний рейтинг, состоящий из 10-ти мест, посвящен не обычным сайтам. Сайты в этом списке ТОП-10 имеют одну общую особенность – эффект параллакса.

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

Итак, параллакс-эффектом, либо параллакс-скроллингом называется специальная техника, при которой объекты на заднем плане в перспективе движутся медленнее, чем объекты на переднем плане. За счет этого создается эффект 3D, появляется ощущение трехмерного пространства. Параллакс-скроллинг – отличный способ добавить изюминку в одностраничный сайт, оживить инфографику, поведать историю или продемонстрировать портфолио. А некоторые работы современных дизайнеров можно с полной уверенностью назвать произведениями искусства… Впрочем, лучше один раз увидеть, чем сто раз услышать – ознакомьтесь с нашим ТОП-10 сайтов и взгляните сами!

Обратите внимание: некоторые сайты с parallax scrolling бывают ресурсозатратны из-за множества эффектов, поэтому не исключается «подтормаживание» на определенных компьютерах и портативных устройствах.

Grab & Go

Десятое место в нашем рейтинге занимает сайт Grab & Go, где параллакс-эффект используется в качестве украшения и оживления картинки. При движении курсора можно наблюдать, как одновременно перемещаются дома и деревья на заднем фоне. Согласитесь, за счет этой изюминки есть шанс, что сайт лучше запомнится посетителю.

DigitalHands

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

Madwell

Нью-Йоркское креативное агентство Madwell демонстрирует свое портфолио на главной странице сайта, умело используя параллакс-эффект. Ощущение 3D не покидает пользователя на протяжении всего времени прокрутки.

Oakley

Любой товар нуждается в правильном представлении. На сайте магазина Oakley параллакс-скроллинг используется для демонстрации преимуществ защитных очков Airbrake MX. Получилось довольно впечатляюще и познавательно, поскольку продукцию можно рассмотреть и изучить со всех сторон, просто пользуясь скроллом.

Make Your Money Matter

Мало кого из людей не волнует тема личных финансов. Сайт Make Your Money Matter, занявший 6-е место нашего рейтинга, в доступной форме раскрывает зрителям преимущества кредитного союза и рассказывает о минусах банков. Здесь можно воспользоваться калькулятором, который покажет, какую прибыль получают банки благодаря вложениям клиентов, а также найти отделения кредитных кооперативов по почтовому индексу.

Space Needle

Хотели бы вы изучить Сиэтл с высоты 184 метра? Сайт Space Needle отправит вас в виртуальную прогулку по самой узнаваемой достопримечательности города – башне Спейс-Нидл (Space Needle), что в переводе с английского означает «космическая игла». Эта башня высотой 184 м, шириной 42 м и весом 9 550 тонн выдерживает ураганы со скоростью ветра до 320 км/ч и землетрясения до 9,1 балла. К тому же, у башни есть 25 громоотводов. Отличительной особенностью Спейс-Нидл является обзорная площадка на высоте 159 метров, ресторан SkyCity и магазин подарков. С ее вершины можно увидеть центр Сиэтла, вулкан Рейнир, Каскадные горы, залив Элиот и окружающие острова.

Peugeot Hybrid4 - Graphic Novel

Крупнейший французский автопроизводитель Peugeot довольно неординарным образом презентовал систему гибридного привода Hybrid4. Перед нашими глазами открывается захватывающий комикс (который, между прочим, можно поставить на автовоспроизведение), где задача главной героини – раздобыть секретные данные и уйти, не попав в неприятности. Для успешного выполнения операции она вынуждена переключаться между четырьмя различными режимами движения, которые имитируют технологию Peugeot Hybrid4 – максимальная производительность и динамичность (Sport), режим полного привода и максимальной тяги (4WD), баланс между производительностью и экономией (Auto), тихая работа (ZEV).

The Walking Dead

Итак, мы подошли к третьему месту в нашем списке ТОП-сайтов, которое досталось проекту The Walking Dead. При создании сайта, который в первую очередь заинтересовал многочисленных фанатов сериала «Ходячие мертвецы», использовались HTML5, CSS3, JavaScript и, конечно, параллакс-эффект. Разработчики проделали огромный труд, заставив работать все эти технологии вместе и на всех платформах. Попадая на сайт и начиная скроллить, пользователь видит рассказ-комикс о том, как из актеров делают зомби.



Уникальный и неповторимый проект, часть агитационной кампании Sony «Be Moved» впечатляет своей объемностью, динамикой и продуманностью до мельчайших деталей. Лучшей презентации продукции, чем у Sony, наверное, не сыскать. Слова излишни – просто скроллите вниз и наслаждайтесь!



Flat vs. Realism

И, наконец, мы дошли до первого места нашего рейтинга, которое занял сайт Flat vs. Realism – детище интерактивного агентства inTacto. Этот новогодний проект со зрелищной графикой (и музыкальным сопровождением!) представляет собой мини-игру жанра fighting с интересной предысторией, где происходит противостояние представителей двух видов дизайна – реалистичного и плоского. Сделав упор на главный холивар конца 2013 – начала 2014 года, создатели не прогадали: после выхода эта впечатляющая работа мгновенно вызвала фурор и стала популярным предметом обсуждения в блогах и новостях.

Разработчикам сайта удалось объединить параллакс-скроллинг и игру на HTML5. «Мы хотели сделать так, чтобы во время прокрутки сайта от начала до конца все действия происходили плавно и без задержек. Для этого мы применили AJAX, что позволило обновлять данные в фоновом режиме», – пояснил креативный директор агентства Alejandro Lazos. Проект был представлен зрителям в конце 2013, перед Новым годом. Приготовьтесь крутить скролл, вас ждет много увлекательного!



Примечание: к сожалению, со временем некоторые сайты могут изменить свой дизайн.

Делаем параллакс-эффект для больших блоков с фоном и для отдельных элементов на сайте.

Подключаем jQuery

$.stellar();

Parallax для элементов

Задаем скорость прокрутки для элементов

Задаем соотношение относительно стандартной скорости прокрутки.
Ratio 0.5 приведет к тому, что элемент будет прокручиваться с половинной скорость,
ratio 1 не будет иметь никакого эффекта,
ratio 2 приведет к тому, что элемент будет прокручиваться с удвоенной скоростью.

Если коэффициент меньше 1 вызывает ошибки в отображении элементов на странице, попробуйте задать для этого элемента position: fixed; .

Parallax для фона

Если необходимо, чтобы фоновое изображение прокручивалось вслед за прокруткой страницы, тогда нужно добавить следующий атрибут:

Как и в случае с параллаксом элементов, ratio – это соотношение к стандартной прокрутке.

Для коэффициента меньше 1, чтобы избежать ошибок в отображении фона, лучше установить для background-attachment значение fixed .

На мобильных телефонах параллакс для фона лучше не использовать.

Кстати background-attachment: fixed на мобильных так же может не сработать из-за сложности вычислений, поэтому нужно для мобильных (@media (max-width: 768px)) задать background-attachment: scroll .

Еще одно уточнение, что фоновая картинка должна быть больше по размеру, чем высота блока, в котором она используется.

Чтобы параллакс не срабатывал на мобильных устройствах (@media (max-width: 768px)), можно задать для блока свойство background-position: center center !important; .

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

Может быть проблемы с IE из-за background-attachment: fixed; – фон может двигаться рывками при скролле.
Нужно использовать отдельные условия для IE:

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { .next-gen{background-attachment: scroll !important; background-position: 0 0 !important;} }

Примитивный пример для тестирования

Hic magnam eaque, mollitia delectus ullam cum possimus voluptatem. Et in commodi quam, consequatur magnam, dolorum odio tenetur, omnis possimus nihil suscipit. Earum quo, architecto laboriosam quisquam facilis fugit voluptates..png" alt="Sun" class="sun-1 sun" data-stellar-ratio=".4">

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquid corporis quo ducimus veniam debitis, blanditiis modi voluptatum laudantium nemo inventore veritatis cum, ex dolorem necessitatibus, quae quos nam, molestiae est.

Ea sint dolor nemo at dicta enim optio omnis molestias voluptatum rem, cumque provident ad eum. Delectus aperiam cumque, dolorum blanditiis, hic error quos reiciendis. Recusandae distinctio voluptas quidem ab!

Hic magnam eaque, mollitia delectus ullam cum possimus voluptatem. Et in commodi quam, consequatur magnam, dolorum odio tenetur, omnis possimus nihil suscipit. Earum quo, architecto laboriosam quisquam facilis fugit voluptates..png" alt="Sun" class="sun-2 sun" data-stellar-ratio="1.4">

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquid corporis quo ducimus veniam debitis, blanditiis modi voluptatum laudantium nemo inventore veritatis cum, ex dolorem necessitatibus, quae quos nam, molestiae est.

Ea sint dolor nemo at dicta enim optio omnis molestias voluptatum rem, cumque provident ad eum. Delectus aperiam cumque, dolorum blanditiis, hic error quos reiciendis. Recusandae distinctio voluptas quidem ab!

Hic magnam eaque, mollitia delectus ullam cum possimus voluptatem. Et in commodi quam, consequatur magnam, dolorum odio tenetur, omnis possimus nihil suscipit. Earum quo, architecto laboriosam quisquam facilis fugit voluptates..png" alt="Sun" class="sun-3 sun" data-stellar-ratio="2"> 2017

* { margin: 0; padding: 0; border: 0; box-sizing: border-box; } body { font-size: 1em; font-family: sans-serif; } div { position: relative; width: 100%; max-width: 1920px; margin: 0 auto; height: 600px; background-size: cover; z-index: 2; overflow: hidden; } ..jpg) 50% 50% no-repeat; } ..jpg) 50% 50% no-repeat; } ..jpg) 50% 50% no-repeat; } .block-text { padding: 60px 30px; height: auto; font-size: 1.6em; line-height: 1.4; } p { position: relative; z-index: 2; max-width: 960px; margin: 0 auto; } .sun { position: absolute; z-index: 1; } .sun-1 { right: 0; top: 20%; } .sun-2 { left: 0; top: 20%; } .sun-3 { left: 50%; margin-left: -200px; top: 20%; } footer { background-color: #000; color: #fff; text-align: center; padding: 20px 0; }

Подключаем необходимые библиотеки

В файле js/common.js такое содержимое

$(function() { // Parallax background // http://markdalgleish.com/projects/stellar.js/docs/ $.stellar({ responsive: false, horizontalScrolling: false, // обязательно, чтобы не было горизонтального сдвига }); });

Рабочий пример:

Узнайте, как создать эффект прокрутки «параллакса» с помощью CSS.

Параллакса

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

Примечание: Прокрутка параллакса не всегда работает на мобильных устройствах/смартфонах. Однако для отключения эффекта от мобильных устройств можно использовать запросы мультимедиа (см. Последний пример на этой странице).

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

Используйте элемент контейнера и добавьте фоновое изображение в контейнер с определенной высотой. Затем используйте background-attachment: fixed для создания фактического эффекта параллакса. Другие свойства фона используются для идеального центрирования и масштабирования изображения:

Example with pixels


.parallax {
/* The image used */
background-image: url("img_parallax.jpg");

/* Set a specific height */
height: 500px;

/* Create the parallax scrolling effect */
background-attachment: fixed;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}


"/> Просмотр демо в редакторе

В приведенном выше примере пикселы используются для установки высоты изображения. Если вы хотите использовать проценты, например 100%, для того, чтобы изображение соответствовало всему экрану, установите высоту контейнера параллакса на 100%. Примечание: Также необходимо применить height: 100% к и :

Пример с процентом

body, html {
height: 100%;
}

Parallax {
/* The image used */
background-image: url("img_parallax.jpg");

/* Full height */
height: 100%;

/* Create the parallax scrolling effect */
background-attachment: fixed;
background-position: center;
background-repeat: no-repeat;
background-size: cover;

В PHP есть замечательная функция str_replace() , которая осуществляет замену одной подстроки на другую. В JavaScript 100% аналога нет , однако, он бывает необходим, и об аналоге str_replace() в JavaScript я и расскажу.

Не так давно мне необходимо было получить в JavaScript текстовые данные из контейнера и вставить их в textarea . Но в контейнере были так же и теги
, которые в textarea так и выводились, однако, надо было, чтобы был переход на новую строку, а не вывод этого тега.

Таким образом, передо мной встала задача замены тегов перехода на новую строку в HTML на текстовый переход , то есть на "\n ".

Первое, что я сделал, это решил поискать аналог str_replace() в JavaScript в поисковой системе, однако, ничего порядочного не нашёл, поэтому пришлось думать самому. В JavaScript есть функция replace() :

Var temp = "Строка
Строка
Строка";
temp = temp.replace("
", "\n");

Однако, эта функция заменяет только первое вхождение , а не все, как это делает str_replace() в PHP . Безусловно, можно сделать бесконечный цикл, где постоянно заменять строку пока не останется больше
. Но есть более красивый способ решения:

Var temp = "Строка
Строка
Строка";
temp = temp.replace(/
/g, "\n");

Мы заменили строку на регулярное выражение с глобальным поиском (модификатор g ). В результате, теперь все найденные совпадения будут заменены.