レスポンシブWebデザインで折りたたみメニューに切り替える
レスポンシブWebデザインでサイトを作る場合に、メディアクエリとjQueryを使ってメニューの表示を切り替えるものをちょこっと作成。
画面サイズが大きい時は横並びのメニュー、小さい場合は折りたたみメニューにする、という簡単なものです。
動きとしてはメディアクエリで表示、非表示等を変更、折りたたみメニューのときは「MENU ▼」をクリックしたときにjQueryでclassをつけたり削除したりしています。
にしてもスマートフォンも混沌としてきましたねぇ。ios、android、windows phone、Tizen、Firefox OS等々、OS自体の数が増え、これからスマートフォンブラウザもいろいろでてくるんでしょうねぇ。。。ふうう。。。
1 2 3 4 5 6 | < div class = "menubtn" >MENU ▼</ div > < nav id = "menu" class = "togmenu" > < ul > < li >< a href = "#" >HOME</ a ></ li >< li >< a href = "#" >ABOUT</ a ></ li >< li >< a href = "#" >NEWS</ a ></ li >< li >< a href = "#" >GALLERY</ a ></ li >< li >< a href = "#" >BLOG</ a ></ li >< li >< a href = "#" >CONTACT</ a ></ li > </ ul > </ nav > |
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 | <style> .togmenu { display : none ; } .menubtn { padding : 16px 20px ; background : #34C6CD ; color : #fff ; } #menu ul { margin : 0 ; padding : 0 ; background : #34C6CD ; } #menu li { list-style : none ; border-top : 2px solid #fff ; } #menu li a { padding : 16px 20px ; display : block ; text-decoration : none ; background : #34C6CD ; color : #fff ; } @media only screen and ( min-width : 800px ) { .menubtn { display : none ; } .togmenu { display : block ; } #menu li { display : inline- block ; border : none ; } } </style> |
1 2 3 4 5 6 7 | <script> $( function (){ $( ".menubtn" ).click( function (){ $( "#menu" ).toggleClass( 'togmenu' ); }); }); </script> |