2017-12-21 11 views
0

同じ結果を検索していますが、前の質問を削除しました。コードペンは、javascript/bootstrapや他のいくつかのライブラリがロードされているために、実行したときと同じように見えないが、助けてくれることを期待して作成された。基本的に何が起こっているのか、私は何が起こりたいのですか?JQueryボタンを押してサイドメニューを左に移動し、アニメーションを使用してコンテンツビューの幅を全幅に変更します

2つのパネルに固定されたヘッダーとボトムの内容が必要です。下部には2つの水平パネルが含まれます。左には、ヘッダーパネルのボタンをクリックすると開く/閉じるメニューがあります。 CSSを使って提案された答えを試しましたが、パネルは水平にならずに垂直にしか整列しませんでした。オンライン検索やさまざまなJQueryの提案に見られる他のCSSプロパティを結びつけました。現在、メニューはページの読み込み時に開閉しますが、ページへのリンクがクリックされたときに、ヘッダーのボタンは、クラスを変更してメニューを非表示にするイベントをもはや持っていません。

ご協力いただければ幸いです。

See code pen 

CodePen

答えて

0

$(".js-togglemenu").on("click", function() { 
 
    $("body").toggleClass("menu-open"); 
 
});
body { 
 
margin:0; 
 
} 
 

 
#applicaitonHeader div { 
 
max-height: 50px; 
 
vertical-align: middle; 
 
padding-left: 5px; 
 
} 
 
#MainMenuPanel { 
 
top: 90px; 
 
padding: 0px; 
 
margin: 0px; 
 
position: absolute; 
 
width: auto; 
 
height: auto; 
 
cursor: pointer; 
 

 
transform: translateX(-100%); 
 

 
transition: transform 0.3s; 
 
} 
 
#BodyContainer { 
 
position: absolute; 
 
width: 100%; 
 
height: auto; 
 
} 
 

 
.menu-open #MainMenuPanel { 
 
    transform: translateX(0); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button class="js-togglemenu" id="MenuShowHide">toggle menu</button> 
 

 
<div id="applicaitonHeader" class="navbar navbar-inverse navbar-fixed-top"> 
 
Header info goes here 
 
</div> 
 
<div id="MainMenuPanel" class="navbar-fixed-left"> 
 
Menu nodes go here 
 
</div> 
 
<div id="BodyContainer" class="container body-content"> 
 
Body content goes here 
 
</div>

だから、すべてのCSS変換やトランジションでこれを行うことができます。 jqueryアニメートを使用するのは古い方法です。 JavaScriptのアニメーションについては何か言われることがありますが、この場合はCSSが十分です。

こちらがお役に立てば幸いです。

+0

申し訳ありませんが、お返事は休暇のために外出しました。あなたの答えが気に入っていますが、実装する際にコードスニペットを実行するときと同じ結果が得られます。メニュー(テキスト)はうまく滑ったり外れたりしますが、本文の内容はメニューdivよりも静的です。私がしようとしているのは、上に表示されているように見える固定された上部のdivと、その下に2つのdivまたはパネルがあり、1つはメニューのスライドインとアウト、もう1つはメニューに反応して残りのスペースまたはページの完全な幅に拡大します。それはjsut CSSで可能ですか? –