Розсувний слайдер тільки на css3
При оформленні зображень, часто доводиться шукати способи красиво і компактно представити зображення і підписи до них, а також щоб переходи були дуууже красивими. Так от сьогодні я хочу представити 4 види переходів використовуючи лише CSS3.
Всі представлені 4 ефекту. Їх можна побачити тут:
Подивитися прімерСкачать
HTML частина
Каркас буде складатися з кнопок (радіо) з назвами і контейнера для зображення з описом і заголовком:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
|
CSS частина
Тут представлений код першого ефекту. Задаємо переходи, тіні для блоків, зображення для фону і стилі заголовків з описами. Більшу частину коду займають анімація переходів, тому код виходить досить великим:
Відео: Слайдер на CSS
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 | .cr-container {width: 600px-height: 400px-position: relative-margin: 0 auto-border: 20px solid #fff-box-shadow: 1px 1px 3px rgba(0,0,0,0.1)-}.cr-container label {font-style: italic-width: 150px-height: 30px-cursor: pointer-color: #fff-line-height: 32px-font-size: 24px-float:left-position: relative-margin-top:350px-z-index: 1000-}.cr-container label: before {content:``-width: 34px-height: 34px-background: rgba(130,195,217,0.9)-position: absolute-left: 50%-margin-left: -17px-border-radius: 50%-box-shadow: 0px 0px 0px 4px rgba(255,255,255,0.3)-z-index:-1-}.cr-container label: after {width: 1px-height: 400px-content: ``-background: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%)-background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0)), color-stop(100%,rgba(255,255,255,1)))-background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%)-background: -o-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%)-background: -ms-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%)-background: linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%)-filter: progid: DXImageTransform.Microsoft.gradient( startColorstr=`# 00ffffff`, endColorstr="#ffffff `,GradientType=0 )-position: absolute-bottom: -20px-right: 0px-}.cr-container label.cr-label-img-4: after {width: 0px-}.cr-container input.cr-selector-img-1:checked ~ label.cr-label-img-1,.cr-container input.cr-selector-img-2:checked ~ label.cr-label-img-2,.cr-container input.cr-selector-img-3:checked ~ label.cr-label-img-3,.cr-container input.cr-selector-img-4:checked ~ label.cr-label-img-4 {color: # 68abc2-}.cr-container input.cr-selector-img-1:checked ~ label.cr-label-img-1: before,.cr-container input.cr-selector-img-2:checked ~ label.cr-label-img-2: before,.cr-container input.cr-selector-img-3:checked ~ label.cr-label-img-3: before,.cr-container input.cr-selector-img-4:checked ~ label.cr-label-img-4: before {background: #fff-box-shadow: 0px 0px 0px 4px rgba(104,171,194,0.6)-}.cr-container input {display: none-}.cr-bgimg {width: 600px-height: 400px-position: absolute-left: 0px-top: 0px-z-index: 1-}.cr-bgimg {background-repeat: no-repeat-background-position: 0 0-}.cr-bgimg div {width: 150px-height: 100%-position: relative-float: left-overflow: hidden-background-repeat: no-repeat-}.cr-bgimg div span {position: absolute-width: 100%-height: 100%-top: 0px-left: -150px-z-index: 2-text-indent: -9000px-}.cr-container input.cr-selector-img-1:checked ~ .cr-bgimg,.cr-bgimg div span: nth-child(1) {background-image: url(../ Images /1.jpg)-}.cr-container input.cr-selector-img-2:checked ~ .cr-bgimg,.cr-bgimg div span: nth-child(2) {background-image: url(../ Images /2.jpg)-}.cr-container input.cr-selector-img-3:checked ~ .cr-bgimg,.cr-bgimg div span: nth-child(3) {background-image: url(../ Images /3.jpg)-}.cr-container input.cr-selector-img-4:checked ~ .cr-bgimg,.cr-bgimg div span: nth-child(4) {background-image: url(../ Images /4.jpg)-}.cr-bgimg div: nth-child(1) span {background-position: 0px 0px-}.cr-bgimg div: nth-child(2) span {background-position: -150px 0px-}.cr-bgimg div: nth-child(3) span {background-position: -300px 0px-}.cr-bgimg div: nth-child(4) span {background-position: -450px 0px-}.cr-container input:checked ~ .cr-bgimg div span {-webkit-animation: slideOut 0.6s ease-in-out--moz-animation: slideOut 0.6s ease-in-out--o-animation: slideOut 0.6s ease-in-out--ms-animation: slideOut 0.6s ease-in-out-animation: slideOut 0.6s ease-in-out-}@ -webkit-keyframes slideOut {0%{ left: 0px- }100%{ left: 150px- }}@ -moz-keyframes slideOut {0%{ left: 0px- }100%{ left: 150px- }}@ -o-keyframes slideOut {0%{ left: 0px- }100%{ left: 150px- }}@ -ms-keyframes slideOut {0%{ left: 0px- }100%{ left: 150px- }}@keyframes slideOut {0%{ left: 0px- }100%{ left: 150px- }}.cr-container input.cr-selector-img-1:checked ~ .cr-bgimg div span: nth-child(1),.cr-container input.cr-selector-img-2:checked ~ .cr-bgimg div span: nth-child(2),.cr-container input.cr-selector-img-3:checked ~ .cr-bgimg div span: nth-child(3),.cr-container input.cr-selector-img-4:checked ~ .cr-bgimg div span: nth-child(4){-webkit-transition: left 0.5s ease-in-out--moz-transition: left 0.5s ease-in-out--o-transition: left 0.5s ease-in-out--ms-transition: left 0.5s ease-in-out-transition: left 0.5s ease-in-out--webkit-animation: none--moz-animation: none--o-animation: none--ms-animation: none-animation: none-left: 0px-z-index: 10-}.cr-titles h3 {position: absolute-width: 100%-text-align: center-top: 50%-z-index: 10000-opacity: 0-color: #fff-text-shadow: 1px 1px 1px rgba(0,0,0,0.1)--webkit-transition: opacity 0.8s ease-in-out--moz-transition: opacity 0.8s ease-in-out--o-transition: opacity 0.8s ease-in-out--ms-transition: opacity 0.8s ease-in-out-transition: opacity 0.8s ease-in-out-}.cr-titles h3 span: nth-child(1) {font-family: `BebasNeueRegular`, `Arial Narrow`, Arial, sans-serif-font-size: 70px-display: block-letter-spacing: 7px-}.cr-titles h3 span: nth-child(2) {letter-spacing: 0px-display: block-background: rgba(104,171,194,0.9)-font-size: 14px-padding: 10px-font-style: italic-font-family: Cambria, Palatino, "Palatino Linotype", "Palatino LT STD", Georgia, serif-}.cr-container input.cr-selector-img-1:checked ~ .cr-titles h3: nth-child(1),.cr-container input.cr-selector-img-2:checked ~ .cr-titles h3: nth-child(2),.cr-container input.cr-selector-img-3:checked ~ .cr-titles h3: nth-child(3),.cr-container input.cr-selector-img-4:checked ~ .cr-titles h3: nth-child(4) {opacity: 1-} |
Відео: simple slider using css3 only
висновок
Якщо мені доведеться оформити якусь Галерея або кілька зображень з безсумнівно скористаюся даними способом. Найбільше мені равітся 3-й :). А який вам?)
Відео: CSS Scroll Snap Points - слайдери на чистому CSS
Успіхів!
джерело: tympanus.net