ヘルプ内にhtmlコンテンツを内包するツールチップ(ポップアップヘルプ的なもの)
世の中にツールチップ的なヘルプをポップアップするjsはたくさん転がっていて、たいがいの場合はそれらのライブラリを使えばことが済む。こんなのとか
http://www.ideaxidea.com/archives/2008/10/tooltips.html
ただ今回場合、中のヘルプにaタグの記述などがあり、ユーザ操作を必要とするので、マウスがヘルプ上にある場合はツルーチップは表示させ続ける必要がある。
この要件に合うものがなかなか見つからなかったので、自分で書くことにした。
以下はそのスクリプトです。つたない点があるかもしれませんが仕事用のメモなのでお許しを。
ちなみにjQueryの使用を前提としています。
htmlの記述
<a href="" class="popup">?</a> <p class="tooltip">ここに<a href="">ヘルプ</a>の文言とかが入ります</p>
cssの記述
.tooltip{ width:300px; background:#fff; border:1px solid #ccc; padding:5px; position:absolute; display:none; }
javascriptの記述
var t; $(function(){ show_pupup(); // ポップアップ用スクリプト起動 // ツールチップ側の監視 $('tooltip').hover( function(){ cleartimeout(t); // hide_popup() を停止 }, function(){ $(this).hide(); // ツールチップを隠す } ); }); // ポップアップ表示のスクリプト var show_popup = function(){ $('.popup').hover( function(e){ cleartimeout(t); var tooltip = $(this).next(); var x = e.pageX; var y = e.pageY + 10; $('tooltip').hide(); $(bubble).show().css({'top':y, 'left':x}); }, function(){ cleartimeout(t); var bubble = $(this).next(); if( $(bubble).css('display') == 'none' ) { return } t = setTimeout(function(){ hide_popup(bubble); }, 1000); } ); }; // ポップアップを隠す var hide_popup = function(obj){ $(obj).hide(); };
「?」にマウスが乗ったら、ツールチップを表示させ、そのまま外れたらsetTimeoutで1秒後にツールチップを消す。
「?」からマウスが外れても、1秒以内にtooltipにマウスを合わせると、hide_popup() がcleartimeoutされて、停止。tooltipから外れると消えるという仕組みです。
あれこれ悩んだ割には、動作原理は上記のような単純なもので良かったのかと。
safariに拡張とか入れたよ。
- 環境設定→詳細 から「開発メニューをオンにする」をチェック
- SIMBL-0.9.7
defaults write com.apple.Safari TargetedClicksCreateTabs -bool true
まとめる手前の散文
mobileヘッダはどうすべきかという点。
<?xml version="1.0" encoding="Shift_JIS" ?> <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml ; charset=Shift_JIS" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta name="description" content="携帯端末で読める数コマまんが集!息抜きにどうぞ!" /> <title>もばこまっ!</title> </head> <body>
http://allabout.co.jp/internet/hpcreate/closeup/CU20090602A/index9.htm
macbookの移行時にやったこと。
移行アシスタントを使ったアプリケーションの移動(主にadobe系)
移行アシスタント→アプリのみを選択し、Adobe系のアプリを新環境へ移行。
この時点で、先に入れたブラウザ系は軒並み上書きされた。orz
所要時間は無線LAN経由でのシンク。アプリだけで約2時間。firewireでやっときゃよかった。
っていうかUSB対応してないの?
フォントの移行
~/Library/Fonts/ 以下に旧macからの既存フォントをコピー
developer toolsのインストール
WebからDownloadも出来るが、どうせ新しい機種だし付属のDVDも最新だろうと思いDVDからインストール。
これを入れる理由は、xcodeと、subversionが入るから。subversionは英語版がインストールされたので、これはmacport経由で入れたほうが良かったかも。
VMWare Fusion3のインストール
この機会にfusionを2→3へアップグレード。ついでにwindows7proも購入。
意味は特に無い。
VMWareに各種OSをインストール
windows7pro, windowsXPHome, ubuntu9.10 をインスコ。今回はBootCamp使いません。
サスペンドも出来て超便利。
あ、新macbookはUSキーなのだけど、これが正しく認識されない。
なのでwindowsは入れたあとに、設定を変えて上げる必要があります。以下を参考に設定を変更。
VMware FusionでUSキーボード http://web-conte.com/blue/200801/22_1313.php
MacPortsのインストール
.dmgパッケージをDownloadしてインストール。
/opt/loacl/bin/port にインストールされているので、.bash_profile に以下を記述しパスを通す
export PATH=/opt/local/bin:/opt/local/sbin/:$PATH export MANPATH=/opt/local/man:$MANPATH
以下を参考
http://veadardiary.blog29.fc2.com/blog-entry-1151.html
三項演算子
【例1】
var a = x ? b : c;
は以下と等価
if(x) { var a = b; } else { var a = c; }
【例2】
var a = (x || y) ? b : c;
if(x || y) {var a = b;} else {var a = c;}
【例3】
var a = x ? b : ( i || j ) ? c : d;
if(x){ var a = b; } else { if( i || j ) { var a = c; } else { var a = d; } }
tailf でリアルタイムなログ監視
tailfコマンドで開始
tailf /usr/local/apache/log/error_log
control+Cで終了。