Параллакс-эффект JS: подборка плагинов

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

В этот раз мы рассмотрим пять плагинов параллакс эффекта на JS. Все они по-своему хороши: кто-то работает только с картинками, кто-то с HTML-элементами, видео, с background-image и т.д.

Предыдущие подборки по теме:

Анимация при скроллинге
Подборка анимации при прокрутке страницы

Как сделать параллакс эффект?

Если кто-то не хочет заморачиваться с JS параллаксом, может просто использовать CSS свойства background-attachment: fixed. Если, конечно, будет позволять обстоятельства работы. Но, а мы сделаем параллакс эффект при помощи JS, который создает интересный и впечатляющий вид анимации.

simplePARALLAX.js

simplePARALLAX

Демо Скачать

Легкая и простая Vanilla JS библиотека, которая применяется непосредственно к тегам изображениям img. Есть ряд настроек. С их помощью можно менять скорость параллакса, направление: влево, вправо и т.д.

Подключение JS

<script src="https://cdn.jsdelivr.net/npm/simple-parallax-js@5.5.1/dist/simpleParallax.min.js"></script>

<!-- Базовая настройка -->
<script>
var image = document.getElementsByClassName('thumbnail');
new simpleParallax(image);
</script>

<!-- Движение параллакса вправа -->
<script>
var image = document.getElementsByClassName('thumbnail');
new simpleParallax(image, {
        orientation: 'right'
});
</script>

<!-- Параллакс с увеличением -->
<script>
var image = document.getElementsByClassName('thumbnail');
new simpleParallax(image, {
        scale: 1.5
});
</script>

<!-- Параллакс без границ -->
<script>
var image = document.getElementsByClassName('thumbnail');
new simpleParallax(image, {
        overflow: true
});
</script>

<!-- Параллакс с задержкой -->
<script>
var image = document.getElementsByClassName('thumbnail');
new simpleParallax(image, {
        delay: .6,
        transition: 'cubic-bezier(0,0,0,1)'
});
</script>
<!-- Параллакс с очень плавной прокруткой -->
<script>
var image = document.getElementsByClassName('thumbnail');
new simpleParallax(image, {
        maxTransition: 60
});
</script>

HTML

<img class="thumbnail" src="image.jpg" alt="image">

ukiyo-js

ukiyo

Демо Скачать

Помимо того, что это библиотека легкая, её возможности намного расширены чем у предыдущей. Она может добавлять параллакс к видео, к тегу imgи даже к фоновой картинке background-image.

Подключение JS

<script src="https://cdn.jsdelivr.net/npm/ukiyojs@3.0.3/dist/ukiyo.min.js"></script>
<script>
        const image = document.querySelector('.ukiyo');//класс картинки для применения параллакс
                new Ukiyo(image)
</script>

HTML

<!-- Для тега <img> -->
<img class="ukiyo" src="image.jpg">

<!-- Для тега <picture> -->
<picture>
  <source srcset="~">
  <img class="ukiyo" src="image.jpg">
<picture>

<!-- Для видео -->
<video class="ukiyo" src="~" type="~">
<!-- Для background-image -->
<div class="ukiyo"></div>

Stellar.js

Stellar

Демо Скачать

Простая и легкая библиотека параллакс. Применяется к картинкам, а также непосредственно к background-image.

Подключение JS

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/stellar.js/0.6.1/jquery.stellar.min.js"></script>
<script>
$.stellar();
</script>

HTML

<!-- Для background-image -->
<div data-stellar-background-ratio="0.5">
<!-- Для элементов -->
<div data-stellar-ratio="2">

Scrollme

Scrollme

Демо Скачать

Параллакс любых HTML-элементов. Чем-то похоже на анимацию при скроллинге, только движущие элементы встают на свою позицию в зависимости от прокручивания страницы.

Подключение JS

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="js/jquery.scrollme.min.js"></script>

HTML

<div class="scrollme">
    <div
        class="animateme"
        data-when="enter"
        data-from="0.5"
        data-to="0"
        data-opacity="0"
        data-translatex="-200"
        data-rotatez="90"
    >
        Yup, that's all.
    </div>
</div>

jScrollability

jScrollability

Демо Скачать

Еще одна библиотека, которая работает с jQuery. С её помощью можно создать анимированное движение любых HTML-элементов.

Подключение JS

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="jScrollability.min.js"></script>
<script>
(function($) {
    $(document).ready(function() {
        $.jScrollability([
            {
                'selector': '.slide-in-demo',
                'start': 'parent',
                'end': 'parent',
                'fn': {
                    'left': {
                        'start': 100,
                        'end': 0,
                        'unit': '%'
                    }
                }
            },
            {
                'selector': '.reveal-demo',
                'start': 'parent',
                'end': 'parent',
                'fn': {
                    'top': {
                        'start': 100,
                        'end': 20,
                        'unit': '%'
                    }
                }
            },
            {
                'selector': '.text-wrapper',
                'start': function($el) { return $el.offset().top + $el.height() },
                'end': 'parent',
                'fn': function($el,pcnt) {
                    var $spans = $el.find('span');
                    var point = Math.floor(($spans.length+1) * pcnt);
                    $spans.each(function(i,el) {
                        var $span = $(el);
                        if (i < point) {
                            $span.addClass('visible');
                        } else {
                            $span.removeClass('visible');
                        }
                    });
                }
            }
        ]);
    });
})(jQuery);
</script>

HTML

<div class="section section-0">
    <h1>jScrollability</h1>
    <h2>Scroll Down</h2>
</div>
<div class="section section-1">
    <span class="slide-in-demo">Slide elements in</span>
</div>
<div class="section section-2">
    <span class="reveal-demo">Reveal From Bottom</span>
</div>
<div class="section section-3">
    <p class="text-wrapper">
        <span>Even reveal</span> <span>whole spans</span> <span>of text</span> <span>within</span> <span>long paragraphs</span> <span>while the user</span> <span>scrolls</span> <span>with jScrollability.</span>
    </p>
</div>
Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *