Эффект при скролле css

Содержание
  1. Параллакс на чистом CSS
  2. Теория
  3. Коррекция глубины
  4. Регулирование скорости слоя
  5. Создание разных участков параллакс эффекта
  6. Поддержка браузеров
  7. Потрясающие эффекты параллакса и скроллинга на основе CSS
  8. CSS Scrollbar
  9. CSS Snap Points
  10. Mouse Move Parallaxa
  11. 3D CSS Parallax Depth Effect
  12. CSS-Only Parallax Effect
  13. Pure CSS Parallax Scrolling
  14. Page Scroll Effects
  15. [Pure CSS] – One Page Scroll
  16. Image Cutout Parallax Effect
  17. Skew Scrolling Effect
  18. Pure CSS Scroll-Icon Animation
  19. Parallax Scrolling
  20. CSS Scroll Down Button
  21. Parallax Background
  22. stroll.js – CSS3 scroll effects
  23. CSS Horizontal Scrolling
  24. Page Top Parallax
  25. CSS Scroll Reveal Sections
  26. Красивые эффекты прокрутки для сайта
  27. Подборка курсов по верстке сайтов
  28. 24 CSS Scroll Effects
  29. Related Articles
  30. Author
  31. Links
  32. Made with
  33. About a code
  34. 3D CSS Scroll
  35. Author
  36. Links
  37. Made with
  38. About a code
  39. Horizontal Scroller Edge Fade Mask
  40. Author
  41. Links
  42. Made with
  43. About a code
  44. CSS Only Scrolling Shadow
  45. Author
  46. Links
  47. Made with
  48. About a code
  49. Full Screen Vertical Scroll Snap
  50. Author
  51. Links
  52. Made with
  53. About a code
  54. Overlapping Horizontal Slideshow Using position: sticky;
  55. Author
  56. Links
  57. Made with
  58. About a code
  59. Horizontal Scrolling with position: sticky
  60. Author
  61. Links
  62. Made with
  63. About a code
  64. Stacking Cards
  65. Author
  66. Links
  67. Made with
  68. About a code
  69. CSS Fixed Conic Fill
  70. Author
  71. Links
  72. Made with
  73. About a code
  74. Knockout Text Scroll Reveal
  75. Author
  76. Links
  77. Made with
  78. About a code
  79. CSS-Only Horizontal Parallax Gallery
  80. Author
  81. Links
  82. Made with
  83. About a code
  84. Overlapping Sections
  85. Author
  86. Links
  87. Made with
  88. About a code
  89. 12 nth Selectors
  90. Author
  91. Links
  92. Made with
  93. About a code
  94. Full Bleed Banner
  95. Author
  96. Links
  97. Made with
  98. About a code
  99. CSS Scroll-Behavior: Smooth
  100. Author
  101. Links
  102. Made with
  103. About the code
  104. CSS scroll-behavior, scroll-snap-type & mix-blend-mode
  105. Author
  106. Links
  107. Made with
  108. About the code
  109. CSS Scroll Reveal Sections
  110. Author
  111. Links
  112. Made with
  113. About the code
  114. Simple Scroll Animation
  115. Author
  116. Links
  117. Made with
  118. About the code
  119. Skew Scrolling Effect
  120. Author
  121. Links
  122. Made with
  123. About the code
  124. Background and Text Scroll Effect
  125. Author
  126. Links
  127. Made with
  128. About a code
  129. Scrolling Gradient
  130. Author
  131. Links
  132. Made with
  133. About the code
  134. One Page Scroll
  135. Author
  136. Links
  137. Made with
  138. About a code
  139. Dual Color Text Scroll Effect
  140. Author
  141. Links
  142. Made with
  143. About the code
  144. Intersection Observer
  145. Author
  146. Links
  147. Made with
  148. About the code
  149. Scrolling Half by Half
  150. Author
  151. Links
  152. Made with
  153. About a code
  154. CSS Background Change On Scroll

Параллакс на чистом CSS

В этой статье показывается, как с помощью CSS трансформаций и махинаций с 3d сделать параллакс-эффект на сайте на чистом CSS.

Параллакс почти всегда создаётся с помощью JavaScript и, чаще всего, получается ресурсоёмким, из-за вешания листенеров на событие скролла, модификации DOM напрямую и срабатывания ненужных перерисовок и перестановок. Всё это происходит асинхронно с потоком, в котором браузер рендерит страницу, из-за чего скролл начинает подтормаживать, а картинка рваться на части. Более правильные реализации параллакса отслеживают скролл и используют отложенные обновления DOM с помощью requestAnimationFrame . Получается качественной другой результат, но почему бы вообще не избавиться от JavaScript?

Перенос параллакс эффекта в CSS спасает от проблем с производительностью и лишних манипуляций, позволяя браузеру самому всё регулировать за счёт аппаратного ускорения. В результате, почти все ресурсоёмкие процессы обрабатываются напрямую браузерным движком. Частота кадров (FPS) остаётся стабильной, а картинка становится плавной. Плюс, можно сразу комбинировать параллакс с другими CSS фишками — media queries или supports. Отзывчивый параллакс — каково?

Читайте также:  Python interactive graph visualization

Теория

Прежде, чем погрузиться в понимание работы этого механизма, создадим необходимую разметку:

.parallax < perspective: 1px; height: 100vh; overflow-x: hidden; overflow-y: auto; >.parallax__layer < position: absolute; top: 0; right: 0; bottom: 0; left: 0; >.parallax__layer--base < transform: translateZ(0); >.parallax__layer--back

Вся магия происходит в классе parallax . Определение свойств стилей height и perspective установит перспективу элемента в его центре, создав фиксированный 3D вьюпорт. overflow-y: auto позволит контенту внутри элемента нормально скроллиться, при этом потомки элемента будут отрисовываться относительно фиксированной перспективы. В этом и заключается ключ к созданию параллакс эффекта.

Далее, класс parallax__layer . Как и следует из имени, он определяет слой контента, к которому будет применен параллакс эффект. Элемент с этим классом выдирается из общего потока контента и позиционируется так, чтобы заполнить свой контейнер.

Наконец, у нас есть классы-модификаторы parallax__layer—base и parallax__layer—back . Они нужны, чтобы регулировать скорость скролла параллакс элементов, смещая их по оси Z (удаляя или приближая к вьюпорту). Для краткости я сделал всего две скорости скролла — позже мы добавим еще несколько.

Коррекция глубины

Так как параллакс эффект создаётся за счёт 3D преобразований, смещение элемента по оси Z имеет побочный эффект — размеры элемента меняются, в зависимости от того, ближе или дальше он к вьюпорту. Чтобы исправить это, нам нужно применять scale() трансформацию, чтобы элемент отрисовывался в своём изначальном размере:

Коэффицент скейла можно посчитать по формуле 1 + (translateZ * -1) / perspective) . Например, если перспектива вьюпорта задана как 1px и мы смещаем элемент на -2px по оси Z, то коэффицентом будет scale(3) .

Регулирование скорости слоя

Скорость слоя регулируется комбинацией значений перспективы и смещения по Z. Элементы с отрицательными значениями Z будут скроллиться медленнее, чем элементы с положительными значениями. Чем больше разность значения от 0, тем явнее параллакс эффект
( т.е. translateZ(-10px) будет скроллиться медленнее, чем translateZ(-1px) ).

Создание разных участков параллакс эффекта

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

Во-первых, нам нужен элемент parallax__group , чтобы сгруппировать наши слои вместе:

для него CSS будет выглядеть так:

В этом примере я хочу, чтобы каждая группа заполнила вьюпорт, поэтому я задаю height: 100vh , хотя, если нужно, число для каждой группы может быть разным. transform-style: preserve-3d не даёт браузеру сделать плоскими элементы с parallax__layer , а position: relative позволяет дочерним parallax__layer элементам позиционироваться относительно их группы.

Важное правило, которое нужно помнить — при группировке элементов мы не можем обрезать контент внутри группы, тк overflow: hidden у элемента parallax__group сломает весь параллакс эффект. Необрезанный контент приведёт к тому, что дочерние элементы будут выступать за рамки. Поэтому нужно пошаманить с значением z-index у группы, чтобы быть уверенным, что контент будет корректно прятаться и показываться по мере того, как пользователь будет скроллить сайт.

Читайте также:  What is java champion

Нет никаких жестких или быстрых правил по поводу работы со слоями и разные методы подразумевают разную реализацию. Но, чтобы упростить отладку позиционирования слоёв, можно применить простую трансформацию групповых элементов:

Взгляните на следующий пример и обратите внимание на галочку debug !

Поддержка браузеров

  • Firefox, Safari, Opera и Chrome — все поддерживают эти эффекты
  • Firefox работает, но у него есть небольшая проблема с выравниванием.
  • IE пока не поддерживает preserve-3d (на подходе), поэтому параллакс работать не будет. Но это нормально, тк всё равно нужно дизайнить так, чтобы контент был адекватным и без параллакса – Ну, progressive enhancement и всё такое!

Статья — перевод (оригинал на blog.keithclark.co.uk — «Pure CSS parallax scrolling websites»)

Источник

Потрясающие эффекты параллакса и скроллинга на основе CSS

Добавление CSS-эффектов – это отличный способ сделать сайт более интересным для пользователей. В этой статье мы собрали лучшие эффекты параллакса и скроллинга.

CSS Scrollbar

CSS Snap Points

Mouse Move Parallaxa

3D CSS Parallax Depth Effect

CSS-Only Parallax Effect

Pure CSS Parallax Scrolling

Page Scroll Effects

Page Scroll Effects

[Pure CSS] – One Page Scroll

Image Cutout Parallax Effect

Skew Scrolling Effect

Pure CSS Scroll-Icon Animation

Parallax Scrolling

CSS Scroll Down Button

Parallax Background

stroll.js – CSS3 scroll effects

stroll.js – CSS3 scroll effects

CSS Horizontal Scrolling

Page Top Parallax

CSS Scroll Reveal Sections

Красивые эффекты прокрутки для сайта

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

Подборка курсов по верстке сайтов

4.4 GeekBrains еще 10 курсов

4.4 Нетология еще 5 курсов

4.4 Skillbox еще 11 курсов

Источник

24 CSS Scroll Effects

Collection of hand-picked free HTML and CSS scroll effect code examples from Codepen, GitHub and other resources. Update of May 2021 collection. 8 new items.

Author

Made with

About a code

3D CSS Scroll

Compatible browsers: Chrome, Edge, Firefox, Opera, Safari

Author

Made with

About a code

Horizontal Scroller Edge Fade Mask

Compatible browsers: Chrome, Edge, Firefox, Opera, Safari

Author

Made with

About a code

CSS Only Scrolling Shadow

Compatible browsers: Chrome, Edge, Firefox, Opera, Safari

Author

Made with

About a code

Full Screen Vertical Scroll Snap

Compatible browsers: Chrome, Edge, Firefox, Opera, Safari

Author

Made with

About a code

Overlapping Horizontal Slideshow Using position: sticky;

Compatible browsers: Chrome, Edge, Firefox, Opera, Safari

Author

Made with

About a code

Horizontal Scrolling with position: sticky

Compatible browsers: Chrome, Edge, Firefox, Opera, Safari

Author

Made with

About a code

Stacking Cards

Compatible browsers: Chrome, Edge, Firefox, Opera, Safari

Author

Made with

About a code

CSS Fixed Conic Fill

Scroll contextual conic gradient text. Text mask revealing «fixed to viewport» background gradient.

Compatible browsers: Chrome, Edge, Firefox, Opera, Safari

Читайте также:  Java persistence query language queries

Author

Made with

About a code

Knockout Text Scroll Reveal

Compatible browsers: Chrome, Edge, Firefox, Opera, Safari

Author

Made with

About a code

A few beautiful photos from Paris in this experimental gallery. Uses transforms together with perspective property for parallax.

Compatible browsers: Chrome, Edge, Firefox, Opera, Safari

Author

Made with

About a code

Overlapping Sections

Overlapping section with position sticky.

Compatible browsers: Chrome, Edge, Firefox, Opera, Safari

Author

Made with

About a code

12 nth Selectors

Compatible browsers: Chrome, Edge, Firefox, Opera, Safari

Author

Made with

About a code

Full Bleed Banner

Compatible browsers: Chrome, Edge, Firefox, Opera, Safari

Author

Made with

About a code

CSS Scroll-Behavior: Smooth

Compatible browsers: Chrome, Edge, Firefox, Opera, Safari

Author

Made with

About the code

CSS scroll-behavior, scroll-snap-type & mix-blend-mode

The scroll-behavior and scroll-snap-type CSS properties are amazing tools for creating landing pages without using js. Unfortunately, these properties are not yet supported in all browsers.

Compatible browsers: Chrome, Firefox, Opera, Safari

Author

Made with

About the code

CSS Scroll Reveal Sections

Use the clip-path property to create fixed position hero sections.

Compatible browsers: Chrome, Firefox, Opera, Safari

Author

Made with

About the code

Simple Scroll Animation

Simple scroll animation in HTML, CSS and JS.

Compatible browsers: Chrome, Edge, Firefox, Opera, Safari

Author

Made with

About the code

Skew Scrolling Effect

Skew scrolling effect in HTML, CSS and JS.

Compatible browsers: Chrome, Firefox, Opera, Safari

Author

Made with

About the code

Background and Text Scroll Effect

Super quick idea for a text reveal effect on scroll.

Compatible browsers: Chrome, Firefox, Opera, Safari

Author

Made with

About a code

Scrolling Gradient

A background gradient that adapts to scroll position.

Compatible browsers: Chrome, Edge, Firefox, Opera, Safari

Author

Made with

About the code

One Page Scroll

One page scroll. Not a single line of JavaScript!

Compatible browsers: Chrome, Edge, Firefox, Opera, Safari

Author

Made with

About a code

Dual Color Text Scroll Effect

Compatible browsers: Chrome, Edge, Firefox, Opera, Safari

Author

Made with

About the code

Intersection Observer

API that can be used to understand the visibility and position of DOM elements relative to a containing element or to the top-level viewport. The position is delivered asynchronously and is useful for understanding the visibility of elements and implementing pre-loading and deferred loading of DOM content.

Compatible browsers: Chrome, Firefox, Opera, Safari

Author

Made with

About the code

Scrolling Half by Half

Scrolling half by half in pure CSS.

Compatible browsers: Chrome, Firefox, Opera, Safari

Author

Made with

About a code

CSS Background Change On Scroll

Fixed element appears to change color when entering different sections. Uses duplicated elements for every section. Now with blend-mode magic for added effect.

Compatible browsers: Chrome, Edge, Firefox, Opera, Safari

Источник

Оцените статью