カテゴリー:Javascript小技

表示タイプ
リスト表示へ
ボックス表示中

Javascriptで動的にCSSを追加する

2008年8月24日 19:59

jQueryやprototype.jsなどのライブラリとともに、CSSファイルを同時に読み込ませる必要がある場合があると思います。
そんなとき、そのライブラリと一緒にCSSなんかも外部jsファイルから追加できると便利です。
外部jsファイルのスクリプトからCSSを動的に読み込ませるスクリプトサンプルです。

「Javascriptで動的にCSSを追加する」サンプル

ページを移動する前に確認メッセージを表示する

2008年6月 8日 10:19

コメント入力中だったり、決まったページ遷移から外れる処理だったり、ページを移動する前に確認したい場合があると思います。
最近の案件で、これを使う機会があって調べたのでメモ的にエントリーしてみます。
ちなみに、これを簡単に実装するスクリプトも書いてみたのでよかったら使ってみてください。

ってことで以下サンプル↓

たった1行でIEかどうかを判別するJavascript

2008年5月22日 15:08

PHPSPOT開発日誌さんの「JavaScriptでIEかどうかをたったの1行で判別する方法」で見つけたものです。ので、今回は完全に備忘録としての記事です。
タイトル通り、たった1行でIEかそうでないかを判別するスクリプトです。

▼ということで、詳細は以下から。

画像のロールオーバーを自動化するJavascript

2008年4月24日 09:44

さて、ちょっと仕事で簡単なJavascriptを作る機会があったのでそれを公開してみる。
(記事が最近全然書けてなかったから間に合わせってわけじゃありません・・たぶん)

最近たまに思うのが、CSSで無理にロールオーバーを実装しなくてもいいんじゃないか、ということ。
背景だけを変更する、とかならむしろCSSが最適解なんだと思うのだけど、テキストごと置換してしまうような場合はJavascriptのほうが手軽だし、altも効くしいいのかなと。
Javascriptオフの人に対しては動きがなくなるけど、むしろオフの人はそういう動きを嫌っているのだからロールオーバーの効果がなくても問題ないのかなと。

Javascriptオフの場合にレイアウトが大幅に崩れてしまうような使い方はNGだと思うけど、ちょっとした利便性のための効果、くらいならJavascriptで実装してもいいと思う。

さて、前置きが長くなりましたが、作成したサンプルはこちらです。
画像のロールオーバーを自動化するJavascriptサンプル

"画像のロールオーバーを自動化する"サンプルダウンロード

実装は簡単で、javascriptを読み込ませてbodyのonloadでスクリプトを実行するだけで、指定のクラス名がついた画像に対してロールオーバーの処理を自動で付与する、というものです。

クラスを追加するだけで簡単にページ内分割を実装するJavascript

2008年3月17日 10:17

※追記[2008/03/21]
機能を若干拡張しました。
自動生成されたページング部分に、ページ内リンクを設定しました。
これにより、ページ内リンクを含んだリンク(ex. index.html#no3など)を設定しておくことで自動的に該当のページ部分を表示するように修正しました。
また、ページ内リンクはページを移動する際に自動で付与されます。

▼サンプルURL
http://css-eblog.com/eblog_sample/0803/paging/#no12


ちょっとした不具合があったので修正しました(;´д`)(2008/03/17 21:33現在)

ページをやたらと細切れにしてPV数を稼ごうとするメディアサイトの問題と解決策 | Web担当者Forumの記事受けて、ページ分割を簡単に実装できるJavascriptを作ってみました。


▼サンプル
ページングサンプル


クラスを追加するだけで簡単にページ内分割を実装するJavascriptサンプルはこちら


»サンプルダウンロード

使い方はとても簡単で、分割したい要素にクラス名を追加するだけです。
※Javascriptオフの場合は、分割をなくしてすべてを表示します。

以下、使い方を。

Javascriptによる外部CSSファイルの切り替え(書き直し)

2008年1月28日 22:56

以前同じ記事を書いたんですが、サンプルデータが消えてしまったのと、
紹介があまり詳しくなかったので書き直してみました。
(たまたまこれを利用する機会もあったのでw)

▼とりあえずサンプルはこちら
Javascriptによる外部CSSファイルの切り替えサンプル

肝はjavascriptのみです。Javascriptソースはこんな感じ↓

ラジオボックスをCSSで装飾

2007年11月16日 12:15

ラジオボックスをCSSで装飾し、javascriptを使用してselect風に使えるようにしてみました。

とある案件で作ったものをサンプル用に修正したものですが、
なかなかうまくいったかなーと思ったのでアップしてみたり。

ラジオボックスをCSSで装飾

ちなみに「#itemList」のプロパティのtop:0をbottom:0に変更すると
リストが上に向かって展開します。
使う場所に応じて修正して使ってみてください。(使ってくれる人がいるかは分かりませんが・・(;´д`))

プルダウンメニューをさらに作り込んでみた

2006年12月14日 10:38

ということで、連日同じエントリーですが。
もう少し作り込んで、今回は別ページでサンプルをアップしてみました。

変更点としては、前回の物に比べ、色などのスタイルを修正。
加えて、下に階層が含まれているメニューについては、右端に▲のマークを
自動で追加するようにしてみました。
動作テストは「WinIE6、Firefx1.5、2.0」です。

※干し梅さんより指摘を頂き、サンプルを修正しました。
XHTMLがValidになるように修正しました。
>>サンプルページ
>>サンプルダウンロード

※サンプルダウンロードには、htmlファイル、cssファイル、jsファイルと、中で使われている画像ファイルが含まれています。

まだまだ改変の余地ありなので、改変や使用は完全フリーです。(というか、ダウンロードしてくれる人がいるんだろうか?w)
ただ、できればコメントとかくれるとさらにやる気がでるのでうれしいですw
(なんか変なとことかあったら言って下さい…)

タグ名から要素を検索する getElementsByTagName

2006年12月11日 10:36

ということで、タイトル通りですw
このメソッド(でいいのかな?)は、前々から知ってはいたんですが、
使い方を知りませんでした。そして、調べていたら
なんと前からほしい! と思っていたメソッドではないですか!

簡単に説明すると、

element.getElementsByTagName('タグ名');


とすると、elementで指定した要素の中に含まれる
'タグ名' を持つ子要素のリストを返す、というもの。
これで、親要素さえ取得できれば、その下の子要素にもアクセスできるようになる、という。

これを知らないときは、アクセスしたい子要素全部にidを付けてましたよ…。
ソースが無駄に増えるし、scriptも汎用性なくなるしで色々苦労した覚えが…。
でもこれからはそんな悩みもなくscriptが組める!

onmouseoverのイベントで関数に(this)でオブジェクトを渡してやって、
さらにその子要素にアクセスできれば、idなんかはできるだけ少なくて済みそうです。

知ってる人は知ってるだろし、わりと当たり前のことかもしれないけど、
わりと目からウロコだったので備忘録的に書いてみました(*'-')

Javascriptによる外部CSSファイルの切り替え

2006年6月22日 20:45

Javascriptによる外部CSSファイルの切り替え、なんとかできるようになりました。
ポイントは「document.getElementsByTagName("link")[i]」これ。
これでlink属性の情報を取得できるんだねー。

ただ、値を変更、というのはできない模様。
linkのalternate stylesheet属性を使って複数のCSSを読み込ませ、
それのdisabledを変更していくことでCSSが切り替わる仕組み。

簡単に言えば、alternate stylesheetでの切り替え作業をJavascriptが代替えする形かな。
(IE6にはCSS切り替え機能は未実装。内部的には把握してるらしいけど、むしろなんでやねんて感じw)

まぁJavascriptでアクセスできるなら、これが使えるからいちおう切り替えできるから文句言うまい。

大概は文字サイズとかを変更するのに使われるけど、これでmenuの位置を好きな場所に移動できる、みたいな感じで使えばわりと面白いかもしんない。

Cookieと組み合わせて自分流にカスタマイズさせる、みたいな。

とりあえずなにかに使えそうなので書いてみたw

サンプルはこちら↓
http://www.green.dti.ne.jp/edo/web-test/test4/


サンプルのアップ先のサーバを解約してしまったので、新しく作り直したら再度アップしたいと思います(;´д`)

※ついでもあったので、新しくエントリーを書き直しました。
書き直したエントリーは以下を参照ください。