家具レイアウトシミュレーション用のJavascriptを…
2008.12.16 火曜日引越をすることになり、その件で頭が一杯だったのでつい…。
家具どう置こうかなー、とか色々考えてて、
とリあえず、Javascriptで家具配置のシミュレーションが出来る物を自分用に簡易なの作ってこれで遊んでたんだけど、
ちょっと面白そうなんで一度ちゃんと作ってみるかも。
引越をすることになり、その件で頭が一杯だったのでつい…。
家具どう置こうかなー、とか色々考えてて、
とリあえず、Javascriptで家具配置のシミュレーションが出来る物を自分用に簡易なの作ってこれで遊んでたんだけど、
ちょっと面白そうなんで一度ちゃんと作ってみるかも。
プロジェクト管理ツールを色々と見ていたら、ガントチャートはJpGraphというツールで出力する物が殆どで、
JpGraphだと、GDを使って画像で生成してるので綺麗に出力される反面、融通聞きにくいんじゃないかなぁ、という印象。
タスク名等のテキストにリンク張ったりとか出来た方が便利だろうし、画像生成する際のフォントの問題で日本語化も結構手間。
これってJavascriptで出したらどんな感じだろう、と、思いつきで作ってみた。
空っぽの状態で生成。
と、引数にタスク情報を渡して一気に生成することも可能。
タスクの追加はaddTask()
配列で一気に送ってもOK。
表示切り替え。
生成時のオプション。
タスク追加時のオプション。
開始日と終了日だけは必須。
日付の形式は
YYYYMMDD
YYYY.MM.DD
YYYY/MM/DD
のいずれかで。
急な思いつきでガーッと作ったので色々と雑かも。
ニーズが発生したらまた手を入れると思うけど、ニッチな用途なので延々とアルファバージョンの可能性もw
使用は現在の所未定。
一応、プロジェクト管理ツールを自分らの使いやすい形式の物を自作してみたいという野望があるにはあるけど…。
会社で「こんなの出来るー?」と聞かれて、
面白そうなので試しに作ってみた。

jqurey.zoomImg example01
デフォルト
マウスオーバーした場所を拡大表示。
引数に表示したいエレメントのIDをつけると、その中で表示。
一応各ブラウザで動作は確認できたけど、試作状態なのでまだ粗はありそう。
あとは、折を見て機能足してみるかな、ドラッグ対応とか。
あと、一個謎が…。
家のWinXPのIE7で動かしてみたら、なんだか凄く動きがカクカクだったので、色々試してたんだけど、
一度、動作数のカウント取ってみようと思って、適当な場所に数値を入れてmousemove()で動く度にカウントアップするようにしてみたら、急にスムーズに動き出した…。
何かしら画面描画すればOKっぽい…?
う~ん、会社のIE7では平気だったような…。
なので、mousemove()で呼ばれるメソッドの中に
$(”#ZI_view”).html(” ”);
という一行を入れてひとまず回避。
なんかちょっと気持ち悪い気がするなぁ…。
(※googleさんのキャッシュから復旧)
小物系です。
ごくありふれたコードだけど、出番は多いので持っておくと便利だし、ってことで。
ロールオーバーイメージの動作自体は、DreamWerverの「スワップイメージ」で簡単に実装できるので、デザイナーさんとかはそっちを昔からよく使ってたけど、
HTMLのソースがかなり凄いことになるので、後で困ることが多いし…。
(ページ更新時、に挿入されたプリロードイメージが、使わなくなった画像の分まで残ったままになってたりとかよくある)
つうことで、なるべくHTML側のソースを汚さない形で作った物を使って貰ってます。
![]()
ページのロード時に、<img>タグにclass=”rollover”とつけてある物を抽出して、
ファイル名に「_on」がついた画像を裏でプリロード(事前読み込み)しておき、マウスオーバー時に画像差し替え。
(sample.gif→sample_on.gif sample.jpg→sample_on.jpg)
下記、jQuery併用版とスタンドアロン版があるけど、動きは全く同じ。
こうやって見比べると、jQueryとかってやっぱり便利だなぁって改めて実感…。
他でjQuery使ってる場合とかは主にこっち。
使用方法
スクリプト
他のフレームワーク使ってて、jQueryとの併用はなるべく避けたい場合とか、
他にJSを使ってなくて、ロールオーバーの為だけにわざわざjQueryまで…とかそんな場合はこっち。
使用方法
スクリプト
追記:2008/09/22
超暫定版!エム・アールデザイン ブログ » シンプルなコードでロールオーバーを実現する。様の方でトラックバックを頂き、そちらでの指摘で気がついたのですが、
先日データが飛んでgoogleキャッシュから復旧した際にソースが一部古くなっていたようです。
あとでコッソリ直していた、onloadのバッティングを回避する処理が無くなっていたので修正しました。
Ajaxでタブ切り替え+リスト表示+ページ切り替えというページを作っていて、
タブやページを切り替えた状態を、アンカーリンクで直接指定できるようにはしてあったんだけど、
「これ、historyの履歴に入れられないかなぁ」
と思って検索してたら、素敵なjQueryプラグインを発見。
history plugin
作者様の記事:みかログ: Ajaxと戻るボタン・ブックマーク
DLページにサンプルがあって、そちらのソースで充分把握できるほど使いやすいプラグインですが、
実働に近い感じのサンプル作ってみたので、置いておきます。
Ajaxで、タブ毎に別のcsvファイルを読み込んでリスト表示。
タブ切り替えをhistoryに入れてブラウザの「戻る」「進む」に対応。
ページ切り替え機能を追加して、ページ毎にhistoryに残るようにしました。
※予め、アンカーリンク(URLの#以降)を用いて状態が復元できるようにしておく必要があります。
onLoadや$(document).ready等で、
を実行して初期化しておき、
アンカーリンクの入ったaタグに、clickイベントで
hash = アンカー文字列
をバインド。
上記のサンプルでは、こうなっています。
コールバック関数は、アンカーの文字列を引数として受け取り、
その文字列に応じて状態を再現するように作ってておけばOK。
上記のサンプルでは、
#chevrolet
#bmw
#aston
で、タブの状態を再現し、
ペ-ジ切り替えがある際は、-(ハイフン)でページ番号を繋いで、
#chevrolet-2
等というアンカーにして、
もしアンカーに-(ハイフン)が入っていたら、分割してタブとページの両方を再現するようになっています。