Как сделать вращающееся меню на CSS3?

Пользователь

от arturo , в категории: Компьютерные технологии , 3 года назад

Как сделать вращающееся меню на CSS3?

Facebook Vk Ok Twitter Telegram Whatsapp

2 ответа

Пользователь

от zita_satterfield , 3 года назад

Поворотное или вращающееся меню, созданное на 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 не оставит равнодушным ни одного посетителя сайта.

Пользователь

от taylor , 2 года назад

@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 элементов, которые вращаются вокруг центра при загрузке страницы. При наведении на элемент, он увеличивается и остается на месте.