3本線のメニューボタンをパネルの開閉にあわせてバツに変化させてみる

CSSを使って、3本線のメニューボタンを開閉にあわせて変化させる方法を紹介します。先日作ったWebギャラリーサイトでも使っている方法です。

3line-bar-intro.png

3本線のメニューはアイコン型のWebフォントを使っている人も多いと思いますが、CSSで作成すると動きをつけることもできるので楽しいです。

サンプルを用意していますのでご覧ください。


HTML
HTML

aspan3
<a href="#" id="panel-btn"><span id="panel-btn-icon"></span></a>

span33使1
CSS

CSS
#panel-btn{
  display: inline-block;
  position: relative;
  width: 40px;
  height: 40px;
  margin: 20px 0 10px;
  border-radius: 50%;
  background: #fff;
}
#panel-btn:hover{
  background: #fafafa;
}
#panel-btn-icon{
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 2px;
  margin: -1px 0 0 -7px;
  background: #2196F3;
  transition: .2s;
}
#panel-btn-icon:before, #panel-btn-icon:after{
  display: block;
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 14px;
  height: 2px;
  background: #2196F3;
  transition: .3s;
}
#panel-btn-icon:before{
  margin-top: -6px;
}
#panel-btn-icon:after{
  margin-top: 4px;
}
#panel-btn .close{
  background: transparent;
}
#panel-btn .close:before, #panel-btn .close:after{
  margin-top: 0;
}
#panel-btn .close:before{
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
}
#panel-btn .close:after{
  transform: rotate(-135deg);
  -webkit-transform: rotate(-135deg);
}


#panel-btn{
  display: inline-block;
  position: relative;
  width: 40px;
  height: 40px;
  margin: 20px 0 10px;
  border-radius: 50%;
  background: #fff;
}
#panel-btn:hover{
  background: #fafafa;
}

40pxposition: relative;

spanbeforeafter
#panel-btn-icon{
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 2px;
  margin: -1px 0 0 -7px;
  background: #2196F3;
  transition: .2s;
}

14px2px
3line-bar-description2.png
span40pxtop: 50%;left50%

top: 50%;left50%span1px7px

top: 0; left: 0; right: 0; bottom: 0; margin: auto;調


#panel-btn-icon:before, #panel-btn-icon:after{
  display: block;
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 14px;
  height: 2px;
  background: #2196F3;
  transition: .3s;
}
#panel-btn-icon:before{
  margin-top: -6px;
}
#panel-btn-icon:after{
  margin-top: 4px;
}

spanspanleft: 03

調-6px4px
3line-bar-closs.png
#panel-btn .close{
  background: transparent;
}
#panel-btn .close:before, #panel-btn .close:after{
  margin-top: 0;
}
#panel-btn .close:before{
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
}
#panel-btn .close:after{
  transform: rotate(-135deg);
  -webkit-transform: rotate(-135deg);
}

jQueryclose3jQuery

spantransparent0span




jQuery


jQuery使
$(function() {
  $("#panel-btn").click(function() {
    $("#panel").slideToggle(200);
    $("#panel-btn-icon").toggleClass("close");
    return false;
  });
});

#panel-btn


#panel

#panel-btn-iconclose





#panel

#panel-btn-iconclose




#panelCSSdisplay: none;


3





Web samprary

1px
フィードやTwitterで最新情報をチェック
follow us in feedly
この記事に付いているタグの最新記事一覧
loading...
コメント


1
CSS3before, after2

::before
::after
【2015/01/08 15:13】 | ケイタ #- | [edit]




CSS3
IE8




http://weboook.blog22.fc2.com/blog-entry-370.html


使IE8




【2015/01/09 09:46】 | 管理人 #- | [edit]









※コメントはご意見ご感想や間違いのご指摘等にしていただけますようお願いいたします。コメントを確認する時間がなく、技術的なご質問をいただいても答えできません。申し訳ございませんがご理解のほどお願いいたします。

Recent Entry

Popular Entry

  • このエントリーをはてなブックマークに追加