Прокрутка сторінки: гарний ефект
Відео: Adobe Muse уроки | 22. Ефекти прокрутки (паралакс)
HTML
Кожен окремий з`являється блок знаходиться в тезі, в якому зображення розміщується в тезі, а текст в тезі:
123456789101112131415161718192021222324252627 | lt;div id="Cbp-so-scroller" class="Cbp-so-scroller"gt; |
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/
Поділися в соц мережах: