Прокрутка сторінки: гарний ефект

Відео: Adobe Muse уроки | 22. Ефекти прокрутки (паралакс)

HTML

Кожен окремий з`являється блок знаходиться в тезі, в якому зображення розміщується в тезі, а текст в тезі:

123456789101112131415161718192021222324252627
lt;div id="Cbp-so-scroller" class="Cbp-so-scroller"gt;
class
="Cbp-so-section"gt;class="Cbp-so-side cbp-so-side-left"gt;lt;h2gt; Lemon dropslt;/h2gt;lt;h2gt; Назваlt;/h2gt;lt;pgt; Описlt;/pgt;lt;/articlegt;
class
="Cbp-so-side cbp-so-side-right"gt;lt;img src="Images / 1.jpg" alt="Img01"gt;lt;/figuregt;lt;/sectiongt;
class
="Cbp-so-section"gt;
class
="Cbp-so-side cbp-so-side-left"gt;lt;img src="Images / 2.jpg" alt="Img01"gt;lt;/figuregt;class="Cbp-so-side cbp-so-side-right"gt;lt;h2gt; Назваlt;/h2gt;lt;pgt; Описlt;/pgt;lt;/articlegt;lt;/sectiongt;lt;/sectiongt;lt;/divgt;

CSS

Що стосується стилів, то їх тут небагато.

Для початку ставимо стилі для загального блоку.

1234


.cbp-so-scroller {margin-top: 3em-overflow: hidden-}

Потім стилі для кожного з`являється блоку:

12345678910111213
.cbp-so-section {margin-bottom: 15em-}.cbp-so-section: before,.cbp-so-section: after {content: ""-display: table-}.cbp-so-section: after {clear: both-}

Далі задаємо стилі для заголовків:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
.cbp-so-section h2 {font-size: 5em-font-weight: 300-line-height: 1-}.cbp-so-section p {font-size: 2em-font-weight: 300-}.cbp-so-side {width: 50%-float: left-margin: 0-padding: 3em 4%-overflow: hidden-min-height: 12em--webkit-transition: -webkit-transform 0.5s, opacity 0.5s--moz-transition: -moz-transform 0.5s, opacity 0.5s-transition: transform 0.5s, opacity 0.5s-}.cbp-so-side: before,.cbp-so-side: after {content: ""-display: table-}.cbp-so-side: after {clear: both-}.cbp-so-side-right {text-align: left-}.cbp-so-side-left {text-align: right-}.cbp-so-side-right img {float: left-}.cbp-so-side-left img {float: right-}.cbp-so-init .cbp-so-side {opacity: 0-}.cbp-so-init .cbp-so-side-left {-webkit-transform: translateX(-80px)--moz-transform: translateX(-80px)-transform: translateX(-80px)-}.cbp-so-init .cbp-so-side-right {-webkit-transform: translateX(80px)--moz-transform: translateX(80px)-transform: translateX(80px)-}.cbp-so-section.cbp-so-animate .cbp-so-side-left,.cbp-so-section.cbp-so-animate .cbp-so-side-right {-webkit-transform: translateX(0px)--moz-transform: translateX(0px)-transform: translateX(0px)-opacity: 1-}

javascript

cbpScroller.js - це плагін, за допомогою якого прокрутку сторінки можна зробити більш красивою. Цей маленький плагін личить і для нашого випадку. Його можна скачати - тут.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
-( function( window ) {`Use strict`-var docElem = window.document.documentElement-function getViewportH() {var client = docElem[`ClientHeight`],inner = window[`InnerHeight`]-if( client lt; inner )return inner-elsereturn client-}function scrollY() function getOffset( el ) {var offsetTop = 0, offsetLeft = 0-do {if ( !isNaN( el.offsetTop ) ) {offsetTop += el.offsetTop-}if ( !isNaN( el.offsetLeft ) ) {offsetLeft += el.offsetLeft-}} while( el = el.offsetParent )return {top : offsetTop,left : offsetLeft}}function inViewport( el, h ) function extend( a, b ) {for( var key in b ) {if( b.hasOwnProperty( key ) ) {a[key] = b[key]-}}return a-}function cbpScroller( el, options ) {this.el = el-this.options = extend( this.defaults, options )-this._init()-}cbpScroller.prototype = {defaults : {viewportFactor : 0.2},_init : function() {if( Modernizr.touch ) return-this.sections = Array.prototype.slice.call( this.el.querySelectorAll( `.cbp-so-section` ) )-this.didScroll = false-var self = this-// the sections already shown ...this.sections.forEach( function( el, i ) {if( !inViewport( el ) ) {classie.add( el, `Cbp-so-init` )-}} )-var scrollHandler = function() {if( !self.didScroll ) {self.didScroll = true-setTimeout( function() { self._scrollPage()- }, 60 )-}},resizeHandler = function() {function delayed() {self._scrollPage()-self.resizeTimeout = null-}if ( self.resizeTimeout ) {clearTimeout( self.resizeTimeout )-}self.resizeTimeout = setTimeout( delayed, 200 )-}-window.addEventListener( `Scroll`, scrollHandler, false )-window.addEventListener( `Resize`, resizeHandler, false )-},_scrollPage : function() {var self = this-this.sections.forEach( function( el, i ) {if( inViewport( el, self.options.viewportFactor ) ) {classie.add( el, `Cbp-so-animate` )-}else {classie.add( el, `Cbp-so-init` )-classie.remove( el, "Cbp-so-animate ` )-}})-this.didScroll = false-}}window.cbpScroller = cbpScroller-} )( window )-

Відео: Parallax (jQuery) - створення паралакс ефекту

висновок

Цікавий ефект, який можна використовувати на продають сторінках і сторінках захоплення, щоб якось їх урізноманітнити. Але, можливо, ви знайдете і інше застосування цього ефекту.

Успіхів!

З повагою, Юрій Німець

джерело: https://tympanus.net/codrops/category/blueprints/

Поділися в соц мережах:
Cхоже

Увага, тільки СЬОГОДНІ!