Учебники

Методы jQuery

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

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

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

Простая прокрутка параллакса с использованием Parallax.js

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

Давайте посмотрим на файл HTML, показанный ниже —

<!DOCTYPE html>  
<html lang = "en">  
   <head>  
      <title>Parallax.js | Simple Parallax Scrolling Effect with jQuery</title>  
      <meta charset = "utf-8">  
      <meta http-equiv = "X-UA-Compatible" content = "IE = edge">  
      <meta name = "viewport" content = "width = device-width, initial-scale = 1"> 
      
      <link href = "css/bootstrap.min.css" rel = "stylesheet">  
      <link href = "css/style.css" rel = "stylesheet">  

      <script src = "https://code.jquery.com/jquery-1.12.4.min.js"></script>
      <script src = "https://cdn.jsdelivr.net/parallax.js/1.4.2/parallax.min.js"></script>
   </head>  

   <body>   
      <section>  
         <div class = "container">  
            <h1>Example on Parallax.js</h1>  
            <p data-pg-collapsed>
               This is an example of parallax scrolling using Parallax.js jQuery Plugin.
            </p>              
            <br/>  
         </div>  
      </section>  
      
      <div class = "parallax-container" data-parallax = "scroll" 
         data-position = "top" data-bleed = "10" 
         data-image-src = "https://pixabay.com/get/ea31b90a2af5093ed1534705fb0938c9bd22ffd41cb2114595f9c67dae/clematis-3485218_1920.jpg" 
         data-natural-width = "1600" data-natural-height = "800" >
      </div>  
      <section>  
         <div class = "container">  
            <h2 id = "sampleLorem">Sample Text Here</h2>  
            <p>
               Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec
               odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla
               quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent
               mauris. Fusce nec tellus sed augue semper porta. Mauris massa.
               Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu ad
               litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero.
               <br/>
               <br/>  
               
               Sed dignissim lacinia nunc. Curabitur tortor. Pellentesque nibh. Aenean
               quam. In scelerisque sem at dolor. Maecenas mattis. Sed convallis
               tristique sem. Proin ut ligula vel nunc egestas porttitor. Morbi lectus
               risus, iaculis vel, suscipit quis, luctus non, massa. Fusce ac turpis
               quis ligula lacinia aliquet. Mauris ipsum.  
               <br/>
               <br/>  
               
               Nulla metus metus, ullamcorper vel, tincidunt sed, euismod in, nibh.
               Quisque volutpat condimentum velit. Class aptent taciti sociosqu ad
               litora torquent per conubia nostra, per inceptos himenaeos. Nam nec
               ante. Sed lacinia, urna non tincidunt mattis, tortor neque adipiscing
               diam, a cursus ipsum ante quis turpis. Nulla facilisi. Ut fringilla.
               Suspendisse potenti. Nunc feugiat mi a tellus consequat imperdiet.
               Vestibulum sapien. Proin quam. Etiam ultrices. Suspendisse in justo eu 
               magna luctus suscipit.   
               <br/>
               <br/>  
               
               Sed lectus. Integer euismod lacus luctus magna. Quisque cursus, metus
               vitae pharetra auctor, sem massa mattis sem, at interdum magna augue
               eget diam. Vestibulum ante ipsum primis in faucibus orci luctus et
               ultrices posuere cubilia Curae; Morbi lacinia molestie dui. Praesent
               blandit dolor. Sed non quam. In vel mi sit amet augue congue elementum.
               Morbi in ipsum sit amet pede facilisis laoreet. Donec lacus nunc,
               viverra nec, blandit vel, egestas et, augue. Vestibulum tincidunt
               malesuada tellus. Ut ultrices ultrices enim. Curabitur sit amet mauris.
               Morbi in dui quis est pulvinar ullamcorper.   
               <br/>
               <br/>  
               
               Nulla facilisi. Integer lacinia sollicitudin massa. Cras metus. Sed
               aliquet risus a tortor. Integer id quam. Morbi mi. Quisque nisl felis,
               venenatis tristique, dignissim in, ultrices sit amet, augue. Proin
               sodales libero eget ante. Nulla quam. Aenean laoreet. Vestibulum nisi
               lectus, commodo ac, facilisis ac, ultricies eu, pede. Ut orci risus,
               accumsan porttitor, cursus quis, aliquet eget, justo. Sed pretium 
               blandit orci.   
               <br/>
               <br/>  
               
               Ut eu diam at pede suscipit sodales. Aenean lectus elit, fermentum non,
               convallis id, sagittis at, neque. Nullam mauris orci, aliquet et,
               iaculis et, viverra vitae, ligula. Nulla ut felis in purus aliquam
               imperdiet. Maecenas aliquet mollis lectus. Vivamus consectetuer risus 
               et tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
               Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed
               nisi. Nulla quis sem at nibh elementum imperdiet.   
               <br/>
               <br/>  
            </p>  
         </div>  
      </section>  
      
      <div class = "parallax-container" data-parallax = "scroll" 
         data-bleed = "10" data-speed = "0.2" 
         data-image-src = "https://pixabay.com/get/ea31b90620f0063ed1534705fb0938c9bd22ffd41cb2114594f0c37cae/chamomile-3489847_1920.jpg" 
         data-natural-width = "1600" data-natural-height = "801" 
         data-pg-name = "PARALLAX IMAGE 002">
      </div>  
   </body>  
</html> 

Анализ кода

Приведенные выше фрагменты кода показывают код страницы с двумя изображениями и образец текста между ними.

Как видите, код начинается с <! DOCTYPE html> , это типичный способ сообщить браузерам, что код основан на HTML5.

Теги <meta> в строке 4–6 показывают код, предназначенный для машинной интерпретации. Вы не сможете увидеть влияние этого кода. Здесь важно отметить, что с метатегом веб-разработчики получают расширенный контроль над отображаемыми данными.

Кроме того, в строке 8 и 9 мы включили таблицы стилей CSS вместе с Bootstrap. Bootstrap — широко используемая библиотека для конкретного шрифта и шрифта.

Строки 10 и 11 заботятся о библиотеках jQuery и Parallax.js. Важно включить Parallax.js для контроля эффекта параллакса изображений. Вы сможете найти свойство data-parallax с помощью div в строке 21 , что достаточно для вызова библиотеки parallax.js для требуемого эффекта параллакса.

Эффект параллакса можно увидеть в коде в строках 21 и 40 . Важные свойства, благодаря которым этот эффект возникает в parallax.js: data-parallax, data-image-src, data-natural-width, data-natural-height .

С помощью файла CSS у нас есть только одно свойство. Это как показано ниже —

.parallax-container {  
   height: 500px;  
   width: 100%;  
}  

В приведенном выше HTML-коде мы создали специальную структуру для файлов CSS. У нас будет папка css, в которой будут CSS-файлы — bootstrap.min.css и style.css .

Как только все закончится с документами, вы сможете увидеть эффект параллакса, как показано ниже —

Эффект параллакса

Использование Parallaxator jQuery Plugin

Плагин Parallaxator обеспечивает лучшие эффекты прокрутки параллакса jQuery и прост в использовании. Вы можете скачать плагин Parallaxator, его CSS и JS файлы по этой ссылке — Parallaxator GitHub .

После загрузки файлов CSS и JS вы можете использовать код, показанный ниже, для создания кода HTML.

<!DOCTYPE html>  
<html>  
   <head>  
      <title>Parallaxator Plugin</title>  
      <meta http-equiv = "Content-Type" content = "text/html; charset = utf-8">  
      <link rel = "stylesheet" href = "fm.parallaxator.jquery.css">  

      <link rel = "stylesheet" href = "style.css">  
      <script src = "https://code.jquery.com/jquery-1.12.4.min.js"></script>
      <script src = "fm.parallaxator.jquery.js"></script>  
   </head>  
   <body>  
      <div class = "section1 parallaxator">  
         <img class = "parallax_child" src = "img/landscape.jpg" width = "100%">  
         <h1 class = "mega_text parallax_child">Nature</h1>  
      </div>  
      
      <div class = "section2 parallaxator">  
         <img class = "parallax_child" src = "img/architecture.jpg" width = "100%">
         <h1 class = "mega_text parallax_child">
            Architecture<br>
         </h1>  
      </div>  
      
      <div class = "section3 parallaxator">  
         <img class = "parallax_child" src = "img/architecture1.jpg" width = "100%">
         <h1 class = "mega_text parallax_child" data-parallaxator-reverse = "true" data-parallaxator-velocity = "0.35">  
            Architecture again!  
         </h1>  
      </div>  
   </body>
   
</html> 

Анализ кода

Эффект параллакса обеспечивается классом parallax_child, который предоставляется с каждым тегом img. Parallax_child подключается с помощью файлов CSS и JS, которые представлены ниже.

Чтобы плагин parallaxator работал, мы включили fm.parallaxator.jquery.css и fm.parallaxator.jquery.js. Эти файлы должны быть доступны в том же каталоге, что и файл HTML.

Код для CSS, как показано ниже —

body {  
   font-family: sans-serif;  
   margin: 0;  
   padding: 0;  
} 
 
.section1,.section2, .section3 {  
   border-bottom: 32px solid #fff;  
   padding-top: 40%;  
}  

.section1 {  
   background-color: #fdb;  
}  

.section2 {  
   background-color: #bdf;  
}  

.section3 {  
   background-color: #fbd;  
} 
 
.mega_text {  
   font-weight: bold;  
   font-size: 100px;  
   margin: 0;  
   text-shadow: 0 10px 100px #fff, 0 0 15px #fff;  
   padding: 64px;  
   display: block;  
}  

Благодаря приведенному выше коду вы сможете увидеть эффект параллакса.

Эффект параллакса природы

Stellar.js плагин jQuery для прокрутки параллакса

Stellar.js — еще одно дополнение к списку плагинов параллакса jQuery. Хотя он больше не поддерживается, разработчик, который использовал его стабильную сборку, может с легкостью использовать эффект прокрутки параллакса. Он совместим с последними версиями jQuery и прост в реализации.

Вам нужно будет загрузить последнюю версию jquery.stellar.js с официального сайта плагина Stellar.js . После загрузки создайте этот файл плагина в той же папке, что и файл HTML и CSS.

Давайте посмотрим на HTML-код.

<!doctype html>  
<html>  
   <head>  
      <title>Stellar.js Demo</title>  
      <link href = "style.css" rel = "stylesheet">  
      <script src = "https://code.jquery.com/jquery-1.12.4.min.js"></script>
      <script src = "jquery.stellar.js"></script>  
      
      <script>  
         $(function(){  
            $.stellar({  
               horizontalScrolling: false,  
               verticalOffset: 40  
            });  
         });  
      </script>  
   </head>  
   
   <body>  
      <h1>Demo Site</h1>  
      <div class = "image architecture" data-stellar-background-ratio = "0.5">
         <span>Architecture</span>
      </div>  
      
      <div class = "image abstract" data-stellar-background-ratio = "0.5">
         <span>Abstract</span>
      </div>  
      
      <div class = "image landscape" data-stellar-background-ratio = "0.5">
         <span>Landscape</span>
      </div>  
      
      <div class = "image window" data-stellar-background-ratio = "0.5">
         <span>Window</span>
      </div>  
   </body>
   
</html>  

Анализ кода

Чтобы Stellar.js работал, мы включили библиотеку jquery.stellar.js сразу после ссылки на плагин jQuery в строке 6 .

Функция для звездного параллакса вызывается в теге script от строки 8 до строки 15 . С помощью свойства data-stellar-background-ratio мы устанавливаем смещение для отображаемых изображений. Это делается по строкам 19, 20, 21 и 22 .

Код CSS приведен ниже —

body {  
   font-family: helvetica, arial;  
   padding-top: 40px;  
} 
 
h1 {
   background-color: black;  
   color: white;  
   height: 40px;  
   font-size: 24px;  
   font-weight: normal;  
   left: 0;  
   line-height: 40px;  
   position: fixed;  
   text-align: center;  
   top: 0;  
   width: 100%;  
   z-index: 1;  
} 
 
h1 a {  
   border-bottom: 1px solid white;  
   color: white;  
   display: inline-block;  
   line-height: 30px;  
   text-decoration: none;  
}  

.image {  
   background-attachment: fixed;  
   background-position: 50% 0;  
   background-repeat: no-repeat;  
   height: 450px;  
   position: relative;  
}  

.image span {  
   bottom: 0;  
   color: white;  
   display: block;  
   left: 50%;  
   margin-left: -640px;  
   font-size: 38px;  
   padding: 10px;  
   position: absolute;  
   text-shadow: 0 2px 0 black, 0 0 10px black;  
   width: 1280px;  
}  

.architecture {  
   background-image: url(img/architecture.jpg);  
}  

.abstract {  
   background-image: url(img/ruin.jpg);  
} 
 
.landscape {  
   background-image: url(img/landscape.jpg);  
}  

.window {  
   background-image: url(img/window.jpg); 
} 

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