from :: Asahikawa Hokkaido

passer-by198

primetime pencil

2012/02/21


Posted

HTML要素を折りたたんでクリックで動的に開閉するJavaScript…複数設置可能

「jQuery」を使った HTML 要素の開閉の記事はこちらです…

 「jQuery」「jQuery UI」第5回「Effects/Slide」ボタンクリックでコンテンツを開閉

 jQuery UI Extra-5 : HTML要素のマウスホバー時に光源がカーソルに追従するエフェクト


★・。。・゜゜・。。・☆・。。・゜゜・。。・★・。。・゜゜・。。・☆

ニュース系のブログで引用記事を書いたり…

経済系のブログで表を書いたり…

テクニカル系のブログでソースコードを書いたり…

音楽系のブログで動画を埋め込んだり…などなど…

…記事が長くなってしまう事って…結構あるでしょ

そんな時…引用部分やソースコード部分が…

折りたたまれていて…ボタンクリックなどで…

ページ移動無しで開閉出来たら…

先ずは全体をザッと読んで把握してから…

引用部分やソースコード部分をジックリ確認する…

ってな読み方ができて…お便利です…

そもそも…「ソースはコチラ」や「続きはコチラ」的な…

ページ移動させられるのが嫌いなんです…

まぁ…ブログでよく見る「続きを読む…」にしても…

再読み込みしたり…記事全文ページに移動したり…

全文ページで続きから表示されたり…と…

ブログの仕様により様々です…

重いサイトだと…ウンザリです…

なので…HTMLを弄れるブログならば…

どのブログにでも導入できて…

ボタンやサムネイル画像のクリックで…サクッと…

折りたたまれていた HTML 要素が開閉できる JavaScript です…

勿論…同一ページに複数設置ができます…

難点は…JavaScript オフの来訪者に…

なんの配慮もしていない事です…

「style="display:none"」を使っていますので…

クリックしても何も要素が表示されません…( ̄ー ̄)邪笑

配慮したい場合は…「<noscript>」などで…

同一の代替要素を記述しておく必要があります…

先ずは…サンプルを色々と弄ってみて下さい…

[0]

[1]

[2]

[3]

[4]

[5]

Google Chrome, Japan [6]

[7]

[8]

開閉する HTML 要素の CSS は…

なるべくシンプルに記述しています…

当然ながら…実装すると…ご自身の CSS が反映されます…

JavaScript を準備します…

下記コードを「メモ帳」にコピペして…
<!--
function OC(a){if(document.getElementById(a).style.display=="none"){document.getElementById(a).style.display="block"}else{document.getElementById(a).style.display="none"}};
// -->
文字コードを「UTF-8」拡張子を「js」で…

任意の名前(例 : collapse.js)で保存し…

任意の場所にホストします…

 Blogger用の外部ファイル保存場所として「GitHub」の「GitHub Pages」を活用しよう

 Blogger用のファイル保存場所としてのクラウド型オンライン ストレージ「Google Drive」

 Blogger用のファイル保存場所としてのクラウド型オンライン ストレージ「Dropbox」

 Google Blogger用のファイル保存場所としてのGoogle sites/Picasa

外部ファイル化したくない方は…

ルートディレクトリに書いても OK です…

その場合は…このように書き換えて下さい…
<script type='text/javascript'>
ここに上記コードを挿入
</script>
 コメントを折りたたんでクリックで開閉表示…コメントの文字色と文字サイズも変更

外部ファイル化した方の書式は…
Blogger を利用の方は…
<script async='async' charset='utf-8' src='js ファイルの URL' type='text/javascript'/>
Blogger 以外を利用の方は…
<script async='async' charset='utf-8' src='js ファイルの URL' type='text/javascript'></script>
…と…ご自身の「js ファイルの URL」と差し替えてから記述します…

以下…記事中でのマークアップ方法を…

個別に見ていきますが…基本は…
<a href="javascript:;" onclick="OC('固有の id')">ボタンや画像の表記</a>
開閉させる HTML 要素のタグに「id="固有の id" style="display:none"」を記述
…ってだけです…

尚…長くなってしまうので…

コードの説明上不必要な部分は省略してあります…

[0] ボタン / 指定した HTML 要素を全て開閉する…

記事頭や記事終わりに設置して一括で開閉するためのボタンです…

[0] ボタンのコード…設定した任意の「id」を「,」で区切って全て記述…
<a href="javascript:;" onclick="OC('collapse0'),OC('collapse1'),OC('collapse2'),OC('collapse3'),OC('collapse4'),OC('collapse5'),OC('collapse6'),OC('collapse7'),OC('collapse8')"><button id="button" style="font-size: 12px; font-weight: bold;" title="全ての要素をクリックで開閉します">Example for Collapse / <span style="color: red;">Toggle All</span></button></a>

[1] ボタン / テキストを開閉する…

「div」タグで括ってテキストを記述し…
「id="固有の id" style="display:none"」は「div」タグに記述します…

[1] ボタンのコード…任意の「id」は「collapse0」を設定…
<a href="javascript:;" onclick="OC('collapse0')"><button id="button" style="font-size: 12px; font-weight: bold;" title="テキストをクリックで開閉します">Example for Collapse / Text</button></a>
<div id="collapse0" style="display:none">
Example for Collapse / Text_line1
Example for Collapse / Text_line2
Example for Collapse / Text_line3
</div>

[2] ボタン / 順序付きリストを開閉する…

「div」タグで括る必要はありません…
「id="固有の id" style="display:none"」は「ol」タグに記述します…

[2] ボタンのコード…任意の「id」は「collapse1」を設定…
<a href="javascript:;" onclick="OC('collapse1')"><button id="button" style="font-size: 12px; font-weight: bold;" title="順序付きリストをクリックで開閉します">Example for Collapse / Ordered List</button></a>
<ol id="collapse1" style="display:none">
<li>Example for Collapse / Ordered List_line1</li>
<li>Example for Collapse / Ordered List_line2</li>
<li>Example for Collapse / Ordered List_line3</li>
</ol>

[3] ボタン / 引用を開閉する…

「div」タグで括る必要はありません…
「id="固有の id" style="display:none"」は「blockquote」タグに記述します…

[3] ボタンのコード…任意の「id」は「collapse2」を設定…
<a href="javascript:;" onclick="OC('collapse2')"><button id="button" style="font-size: 12px; font-weight: bold;" title="引用をクリックで開閉します">Example for Collapse / <span style="color: blue;">Blockquote</span></button></a>
<blockquote id="collapse2" style="display:none">
Example for Collapse / Blockquote_line1
Example for Collapse / Blockquote_line2
Example for Collapse / Blockquote_line3
</blockquote>

[4] ボタン / 2つの異なる要素を開閉する…

それぞれに「固有の id」を設定して…
「id="固有の id" style="display:none"」も2箇所に記述します…

[4] ボタンのコード…任意の「id」は要素を2つ開閉させるので…
「collapse3」と「collapse4」を「,」で区切って設定…

<a href="javascript:;" onclick="OC('collapse3'),OC('collapse4')"><button id="button" style="font-size: 12px; font-weight: bold;" title="2つの異なる要素をクリックで開閉します">Example for Collapse / <span style="color: blue">Multiple</span></button></a>
<div id="collapse3" style="display:none">
Example for Collapse / Multiple-Text_line1
Example for Collapse / Multiple-Text_line2
Example for Collapse / Multiple-Text_line3
</div>
<blockquote id="collapse4" style="display:none">
<span style="color: #8AC75A;">Example for Collapse / Multiple-Blockquote2_line1
Example for Collapse / Multiple-Blockquote2_line2
Example for Collapse / Multiple-Blockquote2_line3</span>
</blockquote>

[5] ボタン / 動画埋め込み Player を開閉する…

「id="固有の id" style="display:none"」は…
「object」タグにも直接書けますが…
行間の幅が崩れて綺麗に整列しませんので…
「div」タグで括る事を推奨します…
動画の説明なども書けますからね…

[5] ボタンのコード…任意の「id」は「collapse5」を設定…
<a href="javascript:;" onclick="OC('collapse5')"><button id="button" style="font-size: 12px; font-weight: bold;" title="YouTube の埋め込み Player をクリックで開閉します">Example for Collapse / <span style="color: green;">Video-object</span></button></a>
<div id="collapse5" style="display:none">
<object…(中略)…>
…(中略)…
</object>
</div>

[6] ボタン / 埋め込み iframe を開閉する…

[5] と同一の動画ですが…
埋め込み方法とリンク方法を変えています…
サムネイル画像クリックでの動画埋め込み iframe の開閉です…
「id="固有の id" style="display:none"」は…
iframe には書けませんので…
「div」タグで括って記述します…

[6] 画像のコード…任意の「id」は「collapse6」を設定…
<a href="javascript:;" onclick="OC('collapse6')"><img alt="Google Chrome, Japan" border="0" height="96" width="128" src="サムネイル画像の URL" title="YouTube の埋め込み iframe をクリックで開閉します" /></a>
<div id="collapse6" style="display:none">
<iframe…(中略)…></iframe>
</div>

[7] ボタン / 整形済みテキストを開閉する…

「div」タグで括る必要はありません…
「id="固有の id" style="display:none"」は「pre」タグに記述します…

[7] ボタンのコード…任意の「id」は「collapse7」を設定…
<a href="javascript:;" onclick="OC('collapse7')"><button id="button" style="font-size: 12px; font-weight: bold;" title="整形済みテキストをクリックで開閉します">Example for Collapse / <span style="color: #F15B55;">Pre</span></button></a>
<pre id="collapse7" style="display:none">
…(中略)…
</pre>

[8] ボタン / 表(テーブル)を開閉する…

「div」タグで括る必要はありません…
「style="display:none"」は「table」タグに記述しますが…
必要に応じて「pre」タグで括って記述して下さい…

[8] ボタンのコード…任意の「id」は「collapse8」を設定…
<a href="javascript:;" onclick="OC('collapse8')"><button id="button" style="font-size: 12px; font-weight: bold;" title="表をクリックで開閉します">Example for Collapse / <span style="color: #F15B55;">Table</span></button></a>
<table id="collapse8" style="display:none"…(中略)…>
…(中略)…
</table>

以上ですが…

同一ページ内で複数の要素を開閉する場合…

任意の「id」は…固有である必要がありますので…

お間違え無きように…

尚…実装では…

通常リンクと区別するために…

このような…

マウスの ON / OFF で切り替える(ロールオーバー)画像を…

リンクボタンに付与しています…

 Tonttu/テンプレート編集に必須な「CSS Sprites」作成ツールの使い方と「HTML」マークアップ

 Google Bloggerで絵文字を使うためのTips【CSS Sprites 編】



2 Comments :

View Comments :: Click!!

2 Comments :

  1. jean さんのコメント...
  2. あけましておめでとうございます。
    今年もよろしくです。

    ほへーこんなことできるんですね。
    すげーなんかすげーっす。
    惚れそうっす(*´ω`*)

  3. passer-by198 さんのコメント...
  4. >>じーんさん
    明けましておめでとうございます!
    定期的に覗かせてもらってま~す…
    デザインの進化が楽しいですね…

    冒頭の…「jQuery」使った方法がお奨めです…

Post a Comment :: Click!!

コメントを投稿

韓国大統領 月山明博(李明博)の…天皇陛下への「不敬発言」
痛惜の念などという単語一つを言いに来るのなら、来る必要はない。
日王は韓国民に心から土下座したいのなら来い。
重罪人にするように手足を縛って頭を足で踏んで地面に擦り付けて謝らせてやる。
重罪人が土下座もしない、言葉で謝るだけならふざけた話だ。
そんな馬鹿な話は通用しない。
それなら入国は許さないぞ。
偽左翼マスメディアの情報操作手法
手法 用例 手法 用例 手法 用例 手法 用例
連想の創出 愛国者に対して「軍靴の音が聞こえそうだ」などと揶揄し否定的な印象を与える… コメント 人々を一定の方向に誘導するために「事実とは異なる解釈」をコメントさせたり「社説」にする… プレゼンス効果 現場からの中継や縮小ジオラマなどで「臨場感」を演出し「やらせ」も交えて信用されやすくする… 分類表 一部の「ネット右翼」が批判しています…のように決まった単語・フレーズで事象を分類して極小化・極大化する…
撹乱 「第三極も含めて政党が乱立して訳が分かりません…」などと連日「情報ノイズ」で溢れさせ興味自体を失わせる… 癒着提案 TBS「安倍官房長官印象操作映像事件」のように「個別の事実」を「継ぎ接ぎ」して「誤った印象」を植え付ける… 匿名の権威 「信頼すべき消息筋によれば…」のように情報元を明かす必要がない事を逆手に取り記事の内容に権威を与える… 日常会話 お隣の「韓国」では…のように本来否定的な要素「韓国」を日常会話のように繰り返し心理的習熟効果で反応を麻痺させる…
感情共鳴 コンサートで開催場所の地名を大声で繰り返し叫ぶ…などのように「デモ」「集会」などで群集を理性ではなく感情レベルで反応させる… 歴史の書き換え 民主党の「天皇制廃止」「戸籍法廃止」「夫婦別姓」などの愛国心を低下させるための国家・民族全体に対する長期的な情報操作… 感情整列 この時間にご覧になっている貴方だけに限定100セットだけ…などと「一定のシチュエーション」を用意して群集の感情を「均一化」させる… 一次効果 「朝日新聞の従軍慰安婦捏造問題」「iPS細胞での読売新聞大誤報」など「最初に発信された情報」は嘘でも捏造でも信用されやすいという原理…
ブーメラン 坂本龍一・山本太郎などの著名人を使い原発管制報道に対する「自由の闘士」を作り出し国力を削るために「愛国者」を装った抗議運動を展開する… 心理的ショック 日本は豊かなのだと錯覚させ更に絞り取るために「飢餓」を伝え…日本は悪い事をしたと日本人を自虐的に思い込ませるために繰り返し「戦争」を伝えます… 半真実 「マニュフェストが実現出来なかったのは自民党の負の遺産のせいで民主党がダメだった訳ではない…」のように嘘の中に一面的な真実を織り込み全体を真実に見せる… フィードバック 「支持政党無しの無党派層は過去最高」という結果を得るために世論調査の回答項目に「民主党もダメだけど自民党もダメ」という項目を設定し全体の意見に偽装する…
すり替え 「傷害」を「いじめ」「窃盗」を「万引き」「殺人事件」を「交通事故」「テロリスト」を「レジスタンス」「略奪事件」を「抗議デモ」など受け入れ易い言葉に置き換える婉曲手法… 脅威の創出 尖閣購入時に「中国の脅威」は民主党政権以降に尖鋭化していたにもかかわらず恰も「都知事発言以降に尖鋭化した」かの如く捏造し民主党には他に選択肢は無かったと責任転嫁… 社会的同意 首相の靖国参拝に「外国」から激しい反発が起こっている…などと…特定アジアだけの意見を恰も世界全体が同意していると錯覚させる…「人権擁護法案」「外国人参政権」などもこの手法… 側面迂回 民主党の原発事故対応では線量などの周辺情報は正確に報じられ枝野幸男の「直ちに健康に影響を及ぼすものではない…」の嘘の信憑性を高めメルトダウン・風向きなどの核心部分は隠蔽された…
虚偽類似 「視聴率低迷は若者のテレビ離れのせい…」「CDが売れないのは違法ダウンロードのせい…」「紅白歌合戦に韓流スターが出演できないのは日本の右傾化のせい…」など都合の良い「原因と結果の因果関係」を作り出す… 事実確認 原発安全神話を作り出したのも公共事業にジャブジャブ税金をつぎ込んだのも自民党です…など…「一面的な事実」を先に述べ「事実確認」させ…自民党政権に逆もどりして良いんですか?…と未来を誤認・錯覚させる… 毒入りサンドウィッチ 「白川総裁が自民党の経済政策を批判」「安倍総裁の経済政策発言を市場が好感し円安に振れ株価は年初来の高値」「一方でハイパーインフレを懸念する声も」…のように序文と結論の否定的報道で肯定的な報道を挟み肯定的な報道の意義を低下させる… 砂糖入りサンドウィッチ 毒入りサンドウィッチの逆の手法…
  偽左翼マスメディアの情報操作手法
「jQuery」と「jQuery UI」で HTML に彩りを添えよう…

「導入」「Button」「Accordion」「Tabs」「Effects/Slide」
「Progressbar」「Dialog」「Tooltip」「Menu」 「Extra」 / 公式「Widgets」以外の「jQuery UI」スクリプト
Blogger Template Customize Universal / INDEX
Blogger テンプレート・カスタマイズ / 全般を解説
高速化・最適化対策の結果と備忘録
Scroll Top