Поворотное или вращающееся меню, созданное на CSS3 добавит изюминку любому сайту и будет говорить посетителям о том, что на нем используются современные и безопасные технологии. Меню состоит из главной части — его названия. При наведении курсора мышки на название меню, выпадает список пунктов меню, спрятанных как бы за экраном основного фона сайта. Легкий и приятный дизайн такого CSS3 меню привлекает своим полноценным функционалом.
Приступим непосредственно к реализации:
CSS3 код вращающегося меню
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 |
* { margin: 0; padding: 0; border: none; } #article { height: 360px; width: 586px; font-family: "TeXGyreReg",sans-serif; font-size: 17px; } #article dl { position: relative; top: 15px; left: 50%; margin-left: -75px; width: 150px; height: 155px; color: #324040; text-align: center; background: #04b3d2; background: -moz-linear-gradient(top,#04b3d2,#48dfff); background: -webkit-gradient(linear,left top,left bottom,from(#04b3d2),to(#48dfff)); -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: 0px 0px 6px rgba(0,0,0,0.7); -moz-box-shadow: 0px 0px 6px rgba(0,0,0,0.7); box-shadow: 0px 0px 6px rgba(0,0,0,0.7); -webkit-transform-origin: 50% 120px; -moz-transform-origin: 50% 120px; -o-transform-origin: 50% 120px; -moz-transition: -moz-transform 0.7s ease-in-out; -o-transition: -o-transform 0.7s ease-in-out; -webkit-animation: bounceOut 0.7s ease-in-out; } #article dt { position: absolute; bottom: 0px; width: 100%; height: 27px; padding-top: 5px; } #article dd { -webkit-transform: rotate(180deg); -moz-transform: rotate(180deg); -o-transform: rotate(180deg); } #article dd a { display: block; height: 22px; padding: 3px 0px; color: #324040; text-decoration: none; } #article dd a:hover { background: rgba(255,255,255,0.1); } #article dl:hover { -webkit-transform: rotate(-180deg); -moz-transform: rotate(-180deg); -o-transform: rotate(-180deg); -moz-transition: -moz-transform 0.5s ease-in-out; -o-transition: -o-transform 0.5s ease-in-out; -webkit-animation: bounceIn 0.7s ease-in-out; } @-webkit-keyframes bounceIn { from {-webkit-transform: rotate(0deg);} 75%{-webkit-transform: rotate(-200deg);} 90%{-webkit-transform: rotate(-175deg);} to {-webkit-transform: rotate(-180deg);} } @-webkit-keyframes bounceOut { from {-webkit-transform: rotate(-360deg);} 0% {-webkit-transform: rotate(-180deg);} 10%{-webkit-transform: rotate(-160deg);} to {-webkit-transform: rotate(-360deg);} } #article .masque { position: absolute; z-index: 50; width: 585px; height: 135px; top: 0; left: 0; background: #fff; } #article .ombre { position: absolute; z-index: 40; width: 300px; height: 6px; top: 133px; margin-top: -103px; left: 142px; -webkit-box-shadow: 0px 100px 3px black; -moz-box-shadow: 0px 100px 3px black; box-shadow: 0px 100px 3px black; -webkit-border-radius: 75px 75px 75px 75px / 3px 3px 3px 3px; -moz-border-radius: 75px 75px 75px 75px / 3px 3px 3px 3px; border-radius: 75px 75px 75px 75px / 3px 3px 3px 3px; } |
Вот и всё. CSS3 код вращающегося меню готов. Осталось отобразить его на сайте и наслаждаться своей работой.
HTML код вызова вращающегося меню
1 2 3 4 5 6 7 8 9 10 11 |
<section id="article"> <dl class="menu"> <dt class="btnRot">Закладки</dt> <dd><a href="">...</a></dd> <dd><a href="">Закладка №3</a></dd> <dd><a href="">Закладка №2</a></dd> <dd><a href="">Закладка №1</a></dd> </dl> <div class="masque"></div> <div class="ombre"></div> </section> |
Яркое, необычное и запоминающееся поворотное меню, созданное средствами CSS3 не оставит равнодушным ни одного посетителя сайта.
@arturo
Вы можете создать вращающееся меню с помощью CSS3 и анимаций. Вот пример кода:
HTML:
1 2 3 4 5 6 7 8 9 |
<div class="menu"> <ul> <li><a href="#">Home</a></li> <li><a href="#">About</a></li> <li><a href="#">Contact</a></li> <li><a href="#">Services</a></li> <li><a href="#">Portfolio</a></li> </ul> </div> |
CSS:
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 |
.menu { width: 300px; height: 300px; position: relative; } .menu ul { list-style: none; margin: 0; padding: 0; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } .menu ul li { display: inline-block; margin: 0 10px; transform-origin: center center; } .menu ul li a { display: block; text-align: center; width: 50px; height: 50px; line-height: 50px; border-radius: 50%; background: #333; color: #fff; text-decoration: none; } .menu ul li:nth-child(1) { transform: rotate(0deg); } .menu ul li:nth-child(2) { transform: rotate(72deg); } .menu ul li:nth-child(3) { transform: rotate(144deg); } .menu ul li:nth-child(4) { transform: rotate(216deg); } .menu ul li:nth-child(5) { transform: rotate(288deg); } .menu ul li:hover { transform: scale(1.2) rotate(0deg); transition: transform 0.2s ease-out; } |
Обратите внимание на использование transform: rotate()
для поворота каждого элемента списка вокруг центра. Использование transform-origin: center center
помогает установить точку, вокруг которой происходит вращение.
Также используется transform: translate(-50%, -50%)
для центрирования списка внутри контейнера.
Для создания эффекта при наведении мыши на элемент, используется свойство transform: scale()
для увеличения размера элемента и transition
для плавного перехода анимации.
Этот код создает круговое меню из 5 элементов, которые вращаются вокруг центра при загрузке страницы. При наведении на элемент, он увеличивается и остается на месте.