こんにちは、鴨田です。
今更感はすごくあるとは思いますが、
コーダー初心者でも簡単なJavaScript/jQueryのコードで、
ちょっとした運用を楽に出来るTipsを紹介したいと思います。
JS
HTML
デモページ(001.html)
PHPとかでやる場合の方が多いかも知れませんが、
ナビゲーションの現在位置表示で使えると思います。
JS
HTML
デモページ(002.html)
上側には、li要素が存在するので、ulのボーダーが見えます。
下側には、li要素が存在しないので、ul要素丸ごと非表示となり、ボーダーすら見えなくなりますが、
代わりにspan要素を入れ込んでいます。
また、先ほどは001.htmlだったので、TOPページがアクティブでしたが、
002.htmlにしておりますので、一覧ページがアクティブになっていることが分かるかと思います。
同じような表現として、下記のような表現でも同じ事が出来ます。
JS
HTML
デモページ
何かしら禁止ワードなどがあれば、
強制的にその言葉が含まれる要素を非表示にしたり、内容を変更出来ます。
JS
HTML
デモページ
ブラウザによって、コンテンツ振り分けやリダイレクトを行いたいときに便利です。
ここでは、ブラウザによって、アクティブ要素を切り替えています。
いろいろなブラウザで見てみてください。
以上です。
HTML/CSSコーダーあるいはWEBデザイナーがステップアップして、
フロントエンドエンジニアになるために、
JavaScript/jQueryは欠かせない技術になりますので、
実践していくきっかけになればと思います。
今更感はすごくあるとは思いますが、
コーダー初心者でも簡単なJavaScript/jQueryのコードで、
ちょっとした運用を楽に出来るTipsを紹介したいと思います。
1.現在見ているページのナビゲーションをアクティブにする
JS
- if
(document.URL.indexOf("001.html") != -1) { $("nav a.top").toggleClass("on"); - }
else if (document.URL.indexOf("002.html") != -1){ $("nav a.list").toggleClass("on"); - }
HTML
- <nav>
<ul> <li><a class="top">TOPページ</a></li> <li><a class="list">一覧ページ</a></li> </ul> - </nav>
デモページ(001.html)
PHPとかでやる場合の方が多いかも知れませんが、
ナビゲーションの現在位置表示で使えると思います。
2.liの中身がない場合、その上位要素のulごと表示をしない
JS
- if($("ul.class1
li").size()=="0") { $("ul.class1").hide().parent().append("ここに<ul>がありました");; - }
- if($("ul.class2
li").size()=="0") { $("ul.class2").hide().parent().append("ここに<ul>がありました"); - }
HTML
- <nav>
<ul class="class1"> <li><a class="top">TOPページ</a></li> <li><a class="list">一覧ページ</a></li> </ul> - </nav>
- <nav>
<ul class="class2"> </ul> - </nav>
デモページ(002.html)
上側には、li要素が存在するので、ulのボーダーが見えます。
下側には、li要素が存在しないので、ul要素丸ごと非表示となり、ボーダーすら見えなくなりますが、
代わりにspan要素を入れ込んでいます。
また、先ほどは001.htmlだったので、TOPページがアクティブでしたが、
002.htmlにしておりますので、一覧ページがアクティブになっていることが分かるかと思います。
同じような表現として、下記のような表現でも同じ事が出来ます。
- $("ul").not(":has(li)").hide();
3.ある文字列を含む要素を強制非表示/内容を変更する
JS
- $("a:contains('ニセモノ')").hide();
- $("a:contains('バケモノ')").text("オバケモノ").css('background',
'#000').css('color', '#FFF');
HTML
- <nav
class="class1"> <ul class="class2"> <li><a href="#">ホンモノ</a></li> <li><a href="#">ニセモノ</a></li> <li><a href="#">バケモノ</a></li> </ul> - </nav>
デモページ
何かしら禁止ワードなどがあれば、
強制的にその言葉が含まれる要素を非表示にしたり、内容を変更出来ます。
4.ユーザーエージェントによって表現を変える
JS
- if(navigator.userAgent.indexOf("Chrome")
!= -1) { $("a:contains('Chrome')").toggleClass("on"); - }
else if(navigator.userAgent.indexOf("Firefox") != -1) { $("a:contains('Firefox')").toggleClass("on"); - }
else if(navigator.userAgent.indexOf("Safari") != -1) { $("a:contains('Safari')").toggleClass("on"); - }
else { $("a:contains('Other')").toggleClass("on"); - }
HTML
- <nav>
<ul> <li><a href="#">Chrome</a></li> <li><a href="#">Firefox</a></li> <li><a href="#">Safari</a></li> <li><a href="#">Other</a></li> </ul> - </nav>
デモページ
ブラウザによって、コンテンツ振り分けやリダイレクトを行いたいときに便利です。
ここでは、ブラウザによって、アクティブ要素を切り替えています。
いろいろなブラウザで見てみてください。
以上です。
HTML/CSSコーダーあるいはWEBデザイナーがステップアップして、
フロントエンドエンジニアになるために、
JavaScript/jQueryは欠かせない技術になりますので、
実践していくきっかけになればと思います。