Анимируйте свойства CSS в зависимости от положения прокрутки документа.
Parallax — популярная техника в веб-дизайне для добавления динамических эффектов на страницу во время прокрутки. Теперь он доступен в UIkit 3. Супергибкий компонент Parallax позволяет анимировать практически каждый атрибут CSS на основе позиции прокрутки на вашем сайте. Он дает вашему веб-сайту тонкий трехмерный эффект, создающий иллюзию глубины и позволяющий выделить необходимые элементы.
Смотреть все примеры работы Параллакса
Использование
Для начала работы с компонентом добавьте атрибут uk-parallax
к любому элементу. Добавьте параметр с желаемым целевым значением анимации для каждого свойства CSS, которое вы хотите анимировать.
<div uk-parallax="bgy: -200">...</div>
Заголовок
<div class="uk-height-large uk-background-cover uk-light uk-flex" uk-parallax="bgy: -200" style="background-image: url('images/dark.jpg');"> <h1 class="uk-width-1-2@m uk-text-center uk-margin-auto uk-margin-auto-vertical">Headline</h1> </div>
Свойства анмиаций
Вы можете использовать явное имя свойства CSS (например, width
или scale
) и ряд коротких и специальных свойств (например, bgy
для background-position-y
).
Опция | Описание | |
---|---|---|
x |
Анимировать translateX в пикселях или процентах. | |
y |
Анимировать translateY в пикселях или процентах. | |
bgy |
Анимировать фоновое изображение по оси Y. | |
bgx |
Анимировать фоновое изображение по оси X. | |
rotate |
Анимировать вращение по часовой стрелке в градусах. | |
scale |
Анимация масштабирования | |
color |
Анимация цвета (Содержит начальное и конечное значение). | |
background-color |
Анимация фонового цвета (содержит начальное и конечное значение). | |
border-color |
Анимировать цвет рамки (содержит начальное и конечное значение). | |
opacity |
Анимировать прозрачность. | |
blur |
Анимировать фильтр размытие. | |
hue |
Анимировать фильтр вращения оттенка. | |
grayscale |
Анимировать фильтр в градациях серого. | |
invert |
Анимировать фильтр инверсии. | |
saturate |
Анимировать фильтр насыщенности. | |
sepia |
Анимировать фильтр сепии. |
Внимание По сути, вы можете анимировать любое свойство CSS, имеющее одно значение, например, ширину и высоту, добавив их в атрибут.
Начальное и конечное значения
Свойства всегда анимируются от их текущего значения до целевого значения, которое вы установили в опции. Однако вы также можете определить начальное значение самостоятельно. Это делается путем передачи двух значений через запятую.
Внимание Свойства, которые не имеют соответствующего свойства CSS, такие как CSS-фильтры и преобразования, всегда требуют начального и конечного значений.
<div uk-parallax="opacity: 0,1">...</div>
Заголовок
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<div class="uk-height-large uk-background-cover uk-overflow-hidden uk-light uk-flex uk-flex-top" style="background-image: url('images/dark.jpg');"> <div class="uk-width-1-2@m uk-text-center uk-margin-auto uk-margin-auto-vertical"> <h1 uk-parallax="opacity: 0,1; y: -100,0; scale: 2,1; viewport: 0.5;">Headline</h1> <p uk-parallax="opacity: 0,1; y: 100,0; scale: 0.5,1; viewport: 0.5;">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p> </div> </div>
Несколько шагов
Вы можете определить несколько шагов для свойства, используя список значений через запятую..
<div uk-parallax="x: 0,50,150">...</div>
Заголовок
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<div class="uk-height-large uk-background-cover uk-overflow-hidden uk-light uk-flex uk-flex-top" style="background-image: url('images/dark.jpg');"> <div class="uk-width-1-2@m uk-text-center uk-margin-auto uk-margin-auto-vertical"> <h1 uk-parallax="opacity: 0,1,1; y: -100,0,0; x: 100,100,0; scale: 2,1,1; viewport: 0.5;">Headline</h1> <p uk-parallax="opacity: 0,1,1; y: 100,0,0; x: -100,-100,0; scale: 0.5,1,1; viewport: 0.5;">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p> </div> </div>
Позиции области просмотра
Используя опцию viewport
, вы можете настроить продолжительность анимации. Значение определяет, как далеко внутри области просмотра прокручивается целевой элемент до завершения анимации. Со значением 1
или false
анимация длится до тех пор, пока элемент находится в области просмотра (поведение по умолчанию).Установка его в значения на 0.5
, например, анимирует свойство до тех пор, пока позиция прокрутки не достигнет середины целевого элемента
<div uk-parallax="viewport: 0.5">...</div>
Заголовок
<div class="uk-height-large uk-background-cover uk-light uk-flex uk-flex-top" style="background-image: url('images/dark.jpg');"> <h1 class="uk-width-1-2@m uk-text-center uk-margin-auto uk-margin-auto-vertical" uk-parallax="opacity: 0,1; y: 100,0; viewport: 0.5">Headline</h1> </div>
Вложенность
Различные анимации параллакса могут быть легко вложены.
<div uk-parallax="bgx: -50">
<div uk-parallax="x: -100, 100">...</div>
</div>
Заголовок
<div class="uk-height-large uk-background-cover uk-light uk-flex uk-flex-top" uk-parallax="bgy: -200" style="background-image: url('images/dark.jpg');"> <h1 class="uk-width-1-2@m uk-text-center uk-margin-auto uk-margin-auto-vertical" uk-parallax="y: 100,0">Headline</h1> </div>
Направление
Обычно анимация длится до тех пор, пока сам элемент находится в области просмотра. Чтобы запустить и остановить анимацию на основе видимости окна просмотра другого элемента, используйте параметр target
. Это может быть полезно при использовании вложенных анимаций.
<div id="target">
<div uk-parallax="target: #target">...</div>
</div>
Заголовок
<div id="test-target" class="uk-height-large uk-background-cover uk-light uk-flex uk-flex-top" uk-parallax="bgy: -200" style="background-image: url('images/dark.jpg');"> <h1 class="uk-width-1-2@m uk-text-center uk-margin-auto uk-margin-auto-vertical" uk-parallax="target: #test-target; y: 100,0">Headline</h1> </div>
Смягчение
Чтобы настроить замедление анимации, добавьте опцию easing
. Более низкие значения вызовут более быстрый переход в начале, более высокие значения вызовут более быстрый переход в конце анимации..
- 00.50.60.8124
<div id="test-easing" class="uk-height-large uk-background-cover uk-overflow-hidden uk-light uk-flex" style="background-image: url('images/dark.jpg');"> <div class="uk-grid uk-margin-auto uk-margin-auto-vertical uk-flex-inline"> <div><div class="uk-card uk-card-default uk-padding-small" uk-parallax="target: #test-easing; y: 200; easing: 0">0</div></div> <div><div class="uk-card uk-card-default uk-padding-small" uk-parallax="target: #test-easing; y: 200; easing: 0.5">0.5</div></div> <div><div class="uk-card uk-card-default uk-padding-small" uk-parallax="target: #test-easing; y: 200; easing: 0.6">0.6</div></div> <div><div class="uk-card uk-card-default uk-padding-small" uk-parallax="target: #test-easing; y: 200; easing: 0.8">0.8</div></div> <div><div class="uk-card uk-card-default uk-padding-small" uk-parallax="target: #test-easing; y: 200; easing: 1">1</div></div> <div><div class="uk-card uk-card-default uk-padding-small" uk-parallax="target: #test-easing; y: 200; easing: 2">2</div></div> <div><div class="uk-card uk-card-default uk-padding-small" uk-parallax="target: #test-easing; y: 200; easing: 4;">4</div></div> </div> </div>
Цвета
Вы также можете переходить с одного цвета на другой, например, для границ, фона или цвета текста. Определите цвета, используя модель rgb()
, css-цвета или HEX.
<div uk-parallax="border-color: #00f,#f00">...</div>
Headline
<div id="test-color" class="test-color uk-height-large uk-overflow-hidden uk-flex uk-flex-top" uk-parallax="background-color: yellow,white; border-color: #00f,#f00; viewport: 0.5" style="border: 10px solid #000;"> <h1 class="uk-width-1-2@m uk-text-center uk-margin-auto uk-margin-auto-vertical" uk-parallax="target: #test-target; color: #0f0; viewport: 0.5">Headline</h1> </div>
SVG штрихи
Компонент Parallax можно использовать для анимации SVG.
Эффект выглядит так, словно штрихи SVG рисуют на ваших глазах.
Изображение SVG должно быть введено в разметку как инлайновый SVG. Этого можно добиться вручную или с помощью компонента SVG.
Поскольку компонент SVG внедряет SVG после элемента изображения, атрибут uk-parallax
должен быть добавлен к родительскому элементу.
<div uk-parallax="stroke: 45">
<img src="" alt="" uk-svg>
</div>
-
<div class="uk-text-center" uk-parallax="stroke: 100%; viewport: 0.7">
<img src="/images/strokes.svg" alt="" uk-svg>
</div>
Внимание Рекомендуется использовать %, так как в этом случае вам не нужно знать точную длину штрихов.
SVG изображения
Компонент Parallax можно применять к элементам встроенных изображений SVG, таким как прямоугольник, круг и контур.
<svg viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg">
<rect x="0" y="0" width="10" height="10" uk-parallax="rotate: 360"/>
</svg>
Фильтры
CSS-фильтры — простой способ добавить графические эффекты к любому элементу на вашей странице. Хотя они все еще являются экспериментальной функцией CSS, вы можете безопасно использовать их, и никто не пострадает. Используя компонент Parallax, вы можете динамически изменять интенсивность фильтра для вашего элемента.
<div uk-parallax="blur: 10; sepia: 100;">...</div>
Заголовок
<div id="test-filter" class="uk-height-large uk-background-cover uk-overflow-hidden uk-flex uk-flex-top" uk-parallax="sepia: 100;" style="background-image: url('images/light.jpg');"> <h1 class="uk-width-1-2@m uk-text-center uk-margin-auto uk-margin-auto-vertical" uk-parallax="target: #test-filter; blur: 0,10;">Headline</h1> </div>
Адаптивность
Можно отключить параллакс для устройств различной ширины, применяя опцию media
к атрибуту и добавив соответствующую ширину области просмотра. Добавьте число в пикселях, например, media: 640
или брекпоинт, например, media: @m
. Параллакс будет работать с указанной ширины области просмотра и выше, но не ниже.
<div uk-parallax="media: @m"></div>
Опции компонента
Любой из этих параметров может быть применен к атрибуту компонента. Разделяйте несколько вариантов точкой с запятой. Подробнее
Опция | Значение | По умолчанию | Описание |
---|---|---|---|
easing |
Number | 1 |
Ослабление анимации при прокрутке |
target |
String | false |
Ссылка элемент и указание продолжительности анимации. |
viewport |
Number | 1 |
Диапазон анимации в зависимости от области просмотра. |
media |
Integer, String | false |
Условие для активности компонента - ширина как целое число (например, 640) или контрольная точка (например, @s, @m, @l, @xl), а также любой валидный медиа-запрос (например, (min-width: 900px)). |
JavaScript
Компоненты JavaScript.
Инициализация
UIkit.parallax(element, options);
Смотреть все примеры работы Параллакса