animateで横からヒョイと出てくるメニューの作り方(jquery,css)
スポンサーリンク
animateでできるこんな感じのやつ。カーソルを画面端に持って行くと、メニューが表示され、メニュー上からマウスアウトするとメニューが閉じるってやつ。
$(function(){ var _manage_box_flag = 0; // 1:moving 0:stop function initialPosition(){ $("#manage-box").css({ top : 0, left : 0, marginLeft: "-" + ($("#manage-box").width() +22)+ "px" }); } //マウスが動いた時の処理 $("body").mousemove(function( event ){ //メニューを画面に表示させる if(event.pageX < 10 && _manage_box_flag == 0){ _manage_box_flag = 1; $("#manage-box").animate({ //メニューを右へ動かす 'marginLeft': "0px" }, 300, function() { _manage_box_flag = 0; }); //メニューを画面から消す }else if(event.pageX > 100 && _manage_box_flag == 0){ _manage_box_flag = 1; $("#manage-box").animate({ //メニューを左へ動かす 'marginLeft': "-" + ($("#manage-box").width() +22)+ "px" }, 300, function() { _manage_box_flag = 0; }); } }); $(window).resize(function(){ initialPosition(); }); initialPosition(); });
#manage-box{ width:150px; //メニューの横幅 padding:10px; height:100%; overflow: auto; position: fixed; //白の半透明 background-color:rgba(255,255,255,0.9); //ボックスシャドウにしたい場合 box-shadow: 0 0 2px 1px rgba(255, 255, 255, 0.2) inset, 0 8px 5px -4px rgba(0, 0, 0, 0.1); border:1px solid #dcdcdc; }
html
<div id="manage-box"> <h3>タイトル</h3> <ul> <li>メニュー1</li> <li>メニュー2</li> <li>メニュー3</li> </ul> <h3>タイトル</h3> <ul> <li>メニュー1</li> <li>メニュー2</li> <li>メニュー3</li> </ul> </div>