
どなたかご教授願います。
javascript(jQuery)を利用した表示・非表示を切り替えるやり方はいろいろあると思うのですが、私が思うようなものが実現できません。
個人的ポイントは、
初期状態では表示された状態
ボタンを押すごとに表示・非表示を切り替えられる
1ページ内に複数ボタンを設置
1つのボタンで複数個所のエリアの表示・非表示を適用する
ボタンから離れた場所のエリアを表示・非表示にする
状態をクッキーに保存する
コードの可能な限りの簡略化
(※構築イメージは添付ファイルを参照ください。)
です。よろしくお願い致します。
参考にした質問・知恵袋・サイト様
(1)
http://detail.chiebukuro.yahoo.co.jp/qa/question …
(2)
http://blog.caraldo.net/2009/03/jqcookiemenu.php
(3)
http://oshiete.goo.ne.jp/qa/7259699.html
→(1)複数ボタンを設置する場合は、それだけコードを増やさなければならない。また、1つのボタンで適用されるのは1ヵ所のみ。
→(2)複数ボタンの設置のコードは(1)に比べ少なくて済むが、こちらも1つのボタンで適用されるのは1ヵ所のみ。
→(3)1つのボタンで複数個所を非表示にすることが出来るが、再び表示する場合にはクッキーを初期化しなければならない。また、コードが隣接していなければならない。
(※一部コードを書き換えれば実現可能かもしれませんが私の理解レベルではこれが限界です。申し訳ありません。)

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. …
<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>
この回答への補足
ご回答ありがとうございます。
ご質問の件について返答させていただきます。
>例えば『エリア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…と増やせません。
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Q&Aフォームを作成したいのですが、どう設計してよいか分かりません、アドバイスお願い致します。 1 2023/07/27 19:04
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) VBAで早押しゲームを作りたい 4 2022/05/12 13:46
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) 【ExcelVBA】動的にボタン、ボタン名を生成できますか? 7 2022/04/08 12:54
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Excel(エクセル) 【マクロ】リボン、行列、数式・ステータスバを非表示に 4 2022/12/12 07:32
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaScriptのinnerHTMLの挙動に...
-
JavascriptでDom XSSの脆弱性対...
-
Q&A掲示板の入力フォームに文字...
-
jQueryでのドラッグアンドドロ...
-
JavascriptでXSSの脆弱性への対...
-
vertical sliderをautoplayしたい
-
JspにIf条件を追加したいのです...
-
折りたたみを全て開いて別ペー...
-
JavaScriptのdiv.style属性の変...
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
CloseとDisposeの違い
-
switch の範囲指定
-
Excelシート上のマクロを登録し...
-
EXCEL VBA マクロ 実行する度に...
-
VBA エンターキーでイベントに...
-
銀行の窓口処理の件で知ってる...
-
【Excel】特定の文字を含むセル...
-
月度は何て読みますか?
-
Googleフォーム・複数人の申し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
折りたたみを全て開いて別ペー...
-
確認ダイアログを次からは表示...
-
javascriptで複数の表示・非表...
-
特定の条件のHTML要素を一括で...
-
改行をしたいが、<br>と...
-
CSSでreadonlyの機能はあり...
-
macかwinか判別しスタイルシー...
-
SITEINFOの書き方について
-
ブラウザの表示領域から高さを...
-
vml フォントの大きさ変更
-
フォームで「パスワード(確認...
-
【JavaScript】検索がヒットし...
-
タイプライタ風の文字を真ん中...
-
jqueryを使ったスムーススクロ...
-
jQueryのCSSで値に変数を使う方法
-
webサイトに動画をはりつけ、ク...
-
年月日時分を指定してCSSを切り...
-
時間帯によってclass名を変更し...
-
2回目以降のページロード時には...
-
ブログパーツをレスポンシブ化...
おすすめ情報