Гарний ефект при повороті як на os x за допомогою 3d css3 rotation
Відео: Learn Css3 in Arabic # 15 - 3D Transform - Rotate X, Y, Z ()
В CSS3 існує два види перетворень: 2D і 3D. Якщо ви користувалися операційною системою OS X, тоді ви бачили такий ефект 3D повороту. Якщо немає, тоді ви можете подивитися демо в повному уроці. І в цьому уроці ми створимо такий ефект з допомогою CSS3 3D перетворень.
Відео: CSS3 - Ефект обертання
Реальний приклад можна подивитися тут:
Подивитися прімерСкачать
Як використовувати? - «Ефект при повороті як на OS X»
Щоб повернути елемент по вертикалі необхідно використовувати:
123 | -webkit-transform: rotateX(Ndeg)--moz-transform: rotateX(Ndeg)-transform: rotateX(Ndeg)- |
А щоб повернути по горизонталі:
123 | -webkit-transform: rotateY(Ndeg)--moz-transform: rotateY(Ndeg)-transform: rotateY(Ndeg)- |
(Реальний приклад)
HTML частина
Ми поміщаємо одне зображення в контейнер з класами card front, а друге з класами card back:
12345678910111213 |
|
CSS частина
Визначаємо те, що два внутрішніх контейнера повинні знаходиться в 3D просторі (preserve-3d):
12345678910111213141516 | .passbook {position: relative-width: 300px-height: 380px-margin-bottom: 100px--webkit-transform-style: preserve-3d--moz-transform-style: preserve-3d-transform-style: preserve-3d--webkit-transition: 0.5s--moz-transition: 0.5s-transition: 0.5s-margin-left: 85px-} |
Задня частина карти прихована:
123456 | .card {position: absolute--webkit-backface-visibility: hidden--moz-backface-visibility: hidden-backface-visibility: hidden-} |
Задаємо стилі для передньої частини карти:
123456789101112131415161718192021 | .front .info {width: 18px-height: 18px-border-radius: 21px-font-family: "Georgia", serif-font-style: italic-background-color: # 075621-color: #fff-text-align: center-position: absolute-rightright: 10px-bottombottom: 15px-font-size: 11px-line-height: 18px-display: block-text-decoration: none-}.front {z-index: 1-} |
Відео: CSS 3D Трансформації. Приклад з 3D кубом
А зараз для задньої частини:
Відео: Snow Stack - CSS 3D Visual Effect with WebKit
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | .back {-webkit-transform: rotateY(180deg)--moz-transform: rotateY(180deg)-transform: rotateY(180deg)-}.back .nav {padding: 0-margin: 0-color: #fff-font-size: 12px-width: 100%-font-weight: bold-}.back .nav li {display: inline-position: absolute-top: 18px-}.back .nav a {font-weight: bold-text-decoration: none-padding: 7px 10px-border: 1px solid # 095d25-border-radius: 5px-color: #fff-background: -moz-linear-gradient(top, rgba(255,255,255,0.3) 0%, rgba(0,0,0,0.5) 100%)-background: -webkit-gradient(linear, left top, left bottombottom, color-stop(0%,rgba(255,255,255,0.3)), color-stop(100%,rgba(0,0,0,0.5)))-background: -webkit-linear-gradient(top, rgba(255,255,255,0.3) 0%,rgba(0,0,0,0.5) 100%)-background: -o-linear-gradient(top, rgba(255,255,255,0.3) 0%,rgba(0,0,0,0.5) 100%)-background: -ms-linear-gradient(top, rgba(255,255,255,0.3) 0%,rgba(0,0,0,0.5) 100%)-background: linear-gradient(to bottombottom, rgba(255,255,255,0.3) 0%,rgba(0,0,0,0.5) 100%)-}.back .nav a: hover {background: -moz-linear-gradient(top, rgba(255,255,255,0.4) 0%, rgba(0,0,0,0.55) 100%)-background: -webkit-gradient(linear, left top, left bottombottom, color-stop(0%,rgba(255,255,255,0.4)), color-stop(100%,rgba(0,0,0,0.55)))-background: -webkit-linear-gradient(top, rgba(255,255,255,0.4) 0%,rgba(0,0,0,0.55) 100%)-background: -o-linear-gradient(top, rgba(255,255,255,0.4) 0%,rgba(0,0,0,0.55) 100%)-background: -ms-linear-gradient(top, rgba(255,255,255,0.4) 0%,rgba(0,0,0,0.55) 100%)-background: linear-gradient(to bottombottom, rgba(255,255,255,0.4) 0%,rgba(0,0,0,0.55) 100%)-}.back .nav .title {left: 105px-}.button.done {rightright: 10px-} |
І останнім кроком в CSS задаємо властивості, які відповідають поворот карти по горизонталі:
12345 | .rotate-3d {-webkit-transform: rotateY(180deg)--moz-transform: rotateY(180deg)-transform: rotateY(180deg)-} |
jQuery частина
jQuery частина дуже проста. Спершу не забудьте підключити jQuery бібліотеку між тегами :
1 | lt;script src="Https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="Text / javascript"gt; lt;/scriptgt; |
І пишемо наступну функцію:
123456 | $(document).ready(function(){$(`A.flip`).click(function(event){$(`.passbook`).toggleClass(`Rotate-3d`)-event.preventDefault()-})-})- |
Все, що робить функція toggleClass, це додає вказаний клас rotate-3d до елементу, якщо його немає, і видаляє вказаний клас, якщо елемент вже володіє таким. А даний клас ми описали вище.
висновок
Гарний ефект, який можна використовувати, наприклад, при показі зображень «ДО і ПІСЛЯ».
Успіхів!
джерело: https://hongkiat.com/blog/css3-3d-transforms/