• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javascriptで複数の表示・非表示切り替え)

JavaScriptで複数の表示・非表示切り替え

このQ&Aのポイント
  • JavaScript(jQuery)を利用した表示・非表示を切り替える方法についてご教示願います。初期状態では表示されており、ボタンを押すと表示・非表示を切り替えられ、1ページ内に複数のボタンを設置して、1つのボタンで複数個所のエリアの表示・非表示ができる方法を知りたいです。また、エリアの表示・非表示をクッキーに保存する方法やコードの簡略化についても教えてください。
  • 私はJavaScript(jQuery)を使って表示・非表示を切り替える方法を探しています。具体的には、初期状態では表示されており、ボタンを押すと表示・非表示が切り替わるような仕組みを作りたいです。さらに、1ページ内に複数のボタンを設置し、1つのボタンで複数個所のエリアの表示・非表示を切り替えられる方法も知りたいです。また、エリアの表示・非表示の状態をクッキーに保存する方法や、コードを簡略化する方法についても教えていただきたいです。
  • JavaScript(jQuery)を使用して表示・非表示を切り替える方法について教えてください。初めの状態では表示されており、ボタンをクリックすると表示・非表示が切り替わるような仕組みが欲しいです。また、同じページに複数のボタンを設置し、1つのボタンで複数のエリアの表示・非表示を切り替える方法も知りたいです。また、クッキーを使用してエリアの表示・非表示の状態を記録し、コードを簡潔にする方法についても教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

どのようなマークアップを想定しているのかも不明なので、ひとつの考え方の例として簡略化したサンプルを… クッキーは考慮していませんが、その時の状態を保存する部分と、初期表示を追加する感じ。 ご質問文にいろいろと書いてはありますが、例えば『エリアA(非表示)、エリアB(表示)』の状態で、ボタンBを操作するとどうなるのかなどが不明です。とりあえず、常にその時の状態の反転(トグル)になると仮定。 (全角空白は半角に) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="ja"> <head><title>sample</title> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <style type="text/css"> body{ width:800px; } div.articles{ width:700px; float:left; } div.article{ height:250px; position:relative; border:1px solid gray; } #A, #B, #C { width:500px; height:100px; position:absolute;       right:10px; bottom:10px; background-color:#DDD; } div.buttons{ width:95px; float:right; } div.buttons button{ width:100%; display:block; margin-bottom:10px; } </style> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script type="text/javascript"> $(function(){  $("div.buttons button").click(function(){   $(this.value).slideToggle();  }); }); </script> </head> <body> <div class="articles"> <div class="article">  記事  <div id="A">(area A)</div> </div> <div class="article">  記事2  <div id="B">(area B)</div> </div> <div class="article">  記事3  <div id="C">(area C)</div> </div> </div> <div class="buttons">  <button type="button" value="#A">area A</button>  <button type="button" value="#A,#B">area A&B</button>  <button type="button" value="#B,#C">area B&C</button>  <button type="button" value="#A,#C">area A&C</button>  <button type="button" value="#A,#B,#C">area A&B&C</button> </div> </body> </html>

shiroto_4610
質問者

お礼

jQueryのshowhide.jsを使って希望のものが実現できました。お手数をおかけしました。

shiroto_4610
質問者

補足

ご回答ありがとうございます。 ご質問の件について返答させていただきます。 >例えば『エリアA(非表示)、エリアB(表示)』の状態で、ボタンBを操作するとどうなるのかなどが不明です。 『エリアA(非表示)、エリアB(非表示)』となります。 ボタンBを押してもエリアAにはまったく干渉せず、エリアBのみ表示→非表示→表示→…の繰り返しを想定しております。 コードをお書きいただきましたが、 <div class="articles"> <div class="article">  記事  <div id="A">(area A)</div> </div> <div class="article">  記事2  <div id="B">(area B)</div> </div> <div class="article">  記事3  <div id="B">(area B)</div> ←ここもBになり </div> </div> <div class="buttons">  <button type="button" value="#A">area A</button>  <button type="button" value="#B">area B</button> ←このボタンを押すことにより記事2と記事3の(area B)両方に影響があるものを考えています。 </div> ★ボタンAを押した場合のイメージ ///before///  記事   (area A)  記事2   (area B)  記事3   (area B) [ボタンA]ポチッ [ボタンB] ///after///  記事    記事2   (area B)  記事3   (area B) ★ボタンBを押した場合イメージ ///before///  記事   (area A)  記事2   (area B)  記事3   (area B) [ボタンA] [ボタンB]ポチッ ///after///  記事   (area A)  記事2    記事3   3つ目のidがBでないといけない理由は記事欄のhtmlコードは共通で、どれも同じものになるためCDEF…と増やせません。

その他の回答 (1)

回答No.1

作成依頼ってことかな? http://lancers.jp こういったところで作ってもらうレベルだと思うよ。

shiroto_4610
質問者

お礼

自己解決しました。ありがとうございました。

関連するQ&A