ツールチッププラグイン 2
Webサイトを作成するには、まずは HTML をマークアップします。そして CSS を使ってデザインを施していきます
そして最近では、Webデザインをもっと素敵にするために、jQuery を利用する機会も増えてきました。
Chapter11で作成した、マウスに追従するタイプのツールチップのプラグインです。
オプション
- speed : アニメーションのスピード
- toolTipClass : ツールチップとなる div要素に付けるクラス
- textAttr : ツールチップのテキストとなる属性(デフォルトは title属性)
- caretClass : 装飾用に追加される span要素のクラス
- topOffset : 上方向へのツールチップのオフセット
- rightOffset : 右方向へのツールチップのオフセット
- delay : マウスが外れてから消えるまでの時間差
jQuery Code
(function($){
$.fn.jqueryToolTip = function(options){
/* オプションの設定 */
options = $.extend({
/* アニメーションのスピード */
speed: "fast",
/* ツールチップとなる div要素に付けるクラス */
toolTipClass: "tooltip-body",
/* ツールチップのテキストとなる属性 */
textAttr: "title",
/* 装飾用に追加される span要素のクラス */
caretClass: "tail",
/* 上方向へのツールチップのオフセット */
topOffset: 20,
/* 右方向へのツールチップのオフセット */
rightOffset: 20,
/* マウスが外れてから消えるまでの時間差 */
delay: 1000
}, options);
this.each(function(){
var onMouse = false;
var toolTip = $('<div class="' + options.toolTipClass + '">');
var toolTipText = $(this).attr(options.textAttr);
toolTip
.html( '<p>' + toolTipText + '</p><span class="' + options.caretClass + '"></span>' )
.hide();
$("body").append(toolTip);
$(this).hover(function(){
onMouse = true;
toolTip.stop().fadeTo(options.speed, 1);
},
function(){
onMouse = false;
setTimeout(function(){
if( !onMouse ){
toolTip.stop().fadeOut(options.speed);
}
}, options.delay);
})
.mousemove(function(e){
var toolTipHeight = toolTip.height();
toolTip.css({
"position": "absolute",
"z-index": "9999",
"top": e.pageY - toolTipHeight - options.topOffset + "px",
"left": e.pageX - options.rightOffset + "px"
});
});
});
return this;
}
})(jQuery);
jQuery(function($) {
$(".tooltip").jqueryToolTip({
speed: 200,
delay: 500
});
});