Июль 8, 2014 Запись была обновлена
Эффект 3D кнопки на CSS3 используя 3D Transform
Есть много способов изначально скрыть информацию и показать ее, допустим, при нажатии на кнопку или в всплывающем окне. В этом уроке я собираюсь рассказать о таком способе как создание эффекта куба при наведении на кнопку используя CSS3.
Пример кнопок можно увидеть здесь. Я сделал 6 разных кнопок:
Посмотреть примерСкачать
HTML часть — Эффект 3D кнопки
Кнопки создаются с помощью следующих блоков. Изначально текст, который находится в <span> с идентификатором information скрыт и появляется он лишь при наведении на кнопку:
1 2 3 4 5 6 7 8 | <div class="wrapper"> <div class="item"> <img src="images/contact.png"> <span class="information"> <strong>Кнопка 1</strong> Nam vel dignissim arcu. Quisque pretium imperdiet magna in pretium. </span> </div> </div> |
CSS часть
Здесь мы и задаем все свойства для наших кнопок. И создаем эффект 3D трансформирования:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | .wrapper { display: inline-block; width: 310px; height: 100px; vertical-align: top; margin: 1em 1.5em 2em 0; cursor: pointer; position: relative; font-family: Tahoma, Arial; -webkit-perspective: 4000px; -moz-perspective: 4000px; -ms-perspective: 4000px; -o-perspective: 4000px; perspective: 4000px; } .item { height: 100px; -webkit-transform-style: preserve-3d; -moz-transform-style: preserve-3d; -ms-transform-style: preserve-3d; -o-transform-style: preserve-3d; transform-style: preserve-3d; -webkit-transition: -webkit-transform .6s; -moz-transition: -moz-transform .6s; -ms-transition: -ms-transform .6s; -o-transition: -o-transform .6s; transition: transform .6s; } .item:hover { -webkit-transform: translateZ(-50px) rotateX(95deg); -moz-transform: translateZ(-50px) rotateX(95deg); -ms-transform: translateZ(-50px) rotateX(95deg); -o-transform: translateZ(-50px) rotateX(95deg); transform: translateZ(-50px) rotateX(95deg); } .item:hover img { box-shadow: none; border-radius: 15px; } .item:hover .information { box-shadow: 0px 3px 8px rgba(0,0,0,0.3); border-radius: 3px; } .item img { display: block; position: absolute; top: 0; border-radius: 3px; box-shadow: 0px 3px 8px rgba(0,0,0,0.3); -webkit-transform: translateZ(50px); -moz-transform: translateZ(50px); -ms-transform: translateZ(50px); -o-transform: translateZ(50px); transform: translateZ(50px); -webkit-transition: all .6s; -moz-transition: all .6s; -ms-transition: all .6s; -o-transition: all .6s; transition: all .6s; } .item .information { display: block; position: absolute; top: 0; height: 80px; width: 290px; text-align: left; border-radius: 15px; padding: 10px; font-size: 12px; text-shadow: 1px 1px 1px rgba(255,255,255,0.5); box-shadow: none; background: rgb(236,241,244); background: -moz-linear-gradient(top, rgba(236,241,244,1) 0%, rgba(190,202,217,1) 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(236,241,244,1)), color-stop(100%,rgba(190,202,217,1))); background: -webkit-linear-gradient(top, rgba(236,241,244,1) 0%,rgba(190,202,217,1) 100%); background: -o-linear-gradient(top, rgba(236,241,244,1) 0%,rgba(190,202,217,1) 100%); background: -ms-linear-gradient(top, rgba(236,241,244,1) 0%,rgba(190,202,217,1) 100%); background: linear-gradient(to bottom, rgba(236,241,244,1) 0%,rgba(190,202,217,1) 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ecf1f4', endColorstr='#becad9',GradientType=0 ); -webkit-transform: rotateX(-90deg) translateZ(50px); -moz-transform: rotateX(-90deg) translateZ(50px); -ms-transform: rotateX(-90deg) translateZ(50px); -o-transform: rotateX(-90deg) translateZ(50px); transform: rotateX(-90deg) translateZ(50px); -webkit-transition: all .6s; -moz-transition: all .6s; -ms-transition: all .6s; -o-transition: all .6s; transition: all .6s; } .information strong { display: block; margin: .2em 0 .5em 0; font-size: 20px; font-family: "Oleo Script"; } |
Вывод
Получился действительно красивый эффект куба. Этот эффект для кнопок явно добавит оригинальности вашему сайту. Конечно можно изменять время поворота и экспериментировать с параметрами, если вам что-то хочется изменить.
Успехов!
Источник: webstuffshare.com
Спасибо за ваше обращение!
Мы свяжемся с вами в течение 2-х часов (график работы: пн-пт, с 10 до 19)
Справедливо было бы написать какими браузерами поддерживаются эти эффекты.
Данный эффект будет работать в современных браузерах с поддержкой CSS3. Но для того чтобы не думать о том поддерживает браузер или нет данный эффект, лучше использовать js-библиотеку modernizr, которая будет проверять поддержку данного свойства у браузера. В будущем я думаю сделать статью и более подробно описать данную библиотеку.
можно вместо картинки вставить логотип а при наведении показывать рекламу или спрятать в него поиск по сайту интересный блок