cssのアニメーションで 「ハンバーガーメニュー(パート3)」 アイコンを作成してみました。クリックするとメニューが動きます。
テーマを変えたら表示が壊れてしまい直すのに苦労してます。
入力画面をビジュアルにするとhtmlのコードが勝手に書き換わってしまい思うようにできないです。
まだまだ終わらない…
ソース
html
<div class="svg_box">
<input id="menu_open_03" class="menu_open" name="menu_open_03" type="checkbox" />
<label id="menu_open_button_03" class="menu_button menu_button_03" for="menu_open_03">
<span class="hamburger_line_03"></span>
</label>
</div>
css
.svg_box {
position: relative;
display: block;
text-align: center;
margin: 0;
width: 160px;
height: 160px;
}
.menu_open {
display: none;
}
.menu_button {
display: block;
width: 160px;
height: 160px;
color: #fff;
text-align: center;
line-height: 160px;
background: #39a9d6;
border-radius: 100%;
cursor: pointer;
}
.hamburger_line_03 {
display: block;
position: absolute;
top: 50%;
left: 50%;
margin-left: -30px;
margin-top: -3px;
width: 60px;
height: 6px;
background: #fff;
}
.hamburger_line_03::before,
.hamburger_line_03::after {
content: "";
display: block;
position: absolute;
left: 0;
width: 60px;
height: 6px;
background: #fff;
}
.hamburger_line_03::before {
top: -24px;
}
.hamburger_line_03::after {
bottom: -24px;
}
.hamburger_line_03 {
-webkit-transition: background 0.0s 0.1s;
transition: background 0.0s 0.1s;
}
.hamburger_line_03::before,
.hamburger_line_03::after {
-webkit-transition-duration: 0.6s, 0.3s;
transition-duration: 0.6s, 0.3s;
}
.hamburger_line_03::before {
-webkit-transition-property: top, -webkit-transform;
transition-property: top, transform;
}
.hamburger_line_03::after {
-webkit-transition-property: bottom, -webkit-transform;
transition-property: bottom, transform;
}
/* active */
#menu_open_03:checked + #menu_open_button_03 .hamburger_line_03 {
background: none;
-webkit-transition: background 0.1s 0.0s;
transition: background 0.1s 0.0s;
}
#menu_open_03:checked + #menu_open_button_03 .hamburger_line_03::before {
top: 0;
-webkit-transform: rotate(45deg) scale(1.6, 1.6);
transform: rotate(45deg) scale(1.6, 1.6);
}
#menu_open_03:checked + #menu_open_button_03 .hamburger_line_03::after {
bottom: 0;
-webkit-transform: rotate(-45deg) scale(1.6, 1.6);
transform: rotate(-45deg) scale(1.6, 1.6);
}
#menu_open_03:checked + #menu_open_button_03 .hamburger_line_03::before,
#menu_open_03:checked + #menu_open_button_03 .hamburger_line_03::after {
-webkit-transition-duration: 0.3s, 0.6s;
transition-duration: 0.3s, 0.6s;
}
