質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

3212閲覧

toggleを使ったheader開閉メニューの作り方

kuroishi

総合スコア53

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2017/05/30 04:38

お世話になってます。
さて、今回ですがtoggleを用いて開閉システムを作ってみようと思いました。
といいますのも、clickを使って開閉などを制御したいのですが、どう書けばいいかわからなかったためこの方法かなと思い考えているところであります。
HTML

<div id="header_all_frame_min"> <ul> <a class="menu-trigger"> <span></span> <span></span> <span></span> </a> </ul> </div> <div style="width:100%; height:100%; position:absolute; left:-100%; opacity:0; z-index:1; display:block; background-color:#CCC;" id="menu_brack_back"> <ul style="text-align:center;"> <li style="width:100%; height:11.5%; background-color:#000;">〇〇〇</li> <li style="width:100%; height:11.5%; background-color:#000;">〇〇〇</li> <li style="width:100%; height:11.5%; background-color:#000;">〇〇〇</li> <li style="width:100%; height:11.5%; background-color:#000;">〇〇〇</li> <li style="width:100%; height:11.5%; background-color:#000;">〇〇〇</li> <li style="width:100%; height:11.5%; background-color:#000;">〇〇〇</li> <li style="width:100%; height:11.5%; background-color:#000;">〇〇〇</li> <li style="width:100%; height:11.5%; background-color:#000;">〇〇〇</li> </ul> </div>

JS

$("#header_all_frame_min").toggle( function(){ setTimeout(function(){ $("#menu_brack_back").animate({ left:'100%', zIndex:14, opacity:14, },10); }); }, function(){ setTimeout(function(){ $("#menu_brack_back").animate({ width:'1%', zIndex:1, opacity:0, },1000); }); } );

CSS

@media screen and (max-width: 1024px){ #header_all_frame_min { width:30px; height:auto; top:20px; position:fixed; left:20px; opacity:0; margin:auto; background-color:#FFF; z-index:10000; display:block; } } .menu-trigger, .menu-trigger span { display: inline-block; transition: all .4s; box-sizing: border-box; } .menu-trigger { position: relative; width: 30px; height: 20px; z-index:10001; } .menu-trigger span { position: absolute; left: 0; width: 30px; height: 3px; background-color: #000; border-radius: 4px; } .menu-trigger span:nth-of-type(1) { top: 0; } .menu-trigger span:nth-of-type(2) { top: 10px; } .menu-trigger span:nth-of-type(3) { top: 20px; } .menu-trigger.active span:nth-of-type(1) { -webkit-transform: translateY(10px) rotate(-45deg); transform: translateY(10px) rotate(-45deg); } .menu-trigger.active span:nth-of-type(2) { opacity: 0; } .menu-trigger.active span:nth-of-type(3) { -webkit-transform: translateY(10px) rotate(45deg); transform: translateY(-10px) rotate(45deg); }

CSSはボタン部分で https://codepen.io/anon/pen/ybdMBj を参考に作りました。

そもそも、ここでtoggleを用いて考えるのはおかしいのではとさえ思っています(toggleについては初使用です)
なにかいい打開策があればぜひとも教えていただけたらと思います。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

開閉だけならこうですね。

HTML

12<div style="display:none;" id="menu_brack_back"> 34</div>

JavaScript

1$(".menu-trigger").on('click',function(){ 2 $("#menu_brack_back").toggle(); 3}); 4

.toggle() | jQuery 1.9 日本語リファレンス

開閉でアニメーションをつけたいのであればoptionsで一工夫すればできます。

投稿2017/05/30 04:55

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

HTML

1<div style="width:100%; height:100%; position:absolute; left:-100%; opacity:0; z-index:1; display:block; background-color:#CCC;" id="menu_brack_back"> 2これを、以下のように書き換える 3<div style="width:100%; height:100%; position:absolute; display:none; background-color:#CCC;" id="menu_brack_back">

JavaScript

1$("#header_all_frame_min").on("click", function() { 2 $("#menu_brack_back").animate({ width: "toggle" }); 3});

demo
このdemoは#header_all_frame_minが常に見えるようにメディクエリーを消しています。

投稿2017/05/30 06:31

root_jp

総合スコア4666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問