一つの画像にマウスオーバーすることによって部分的に説明がポップアップ表示されることを目指しています。
mapタグを使おうと思ってhtmlを作成しましたが文字が画像下部に表示されるだけでマウスオーバーしても動いてくれません。スクリプト自体が間違っているのでしょうか?
html
javascript
function simple_tooltip(target_items, name){
$(target_items).each(function(i){
$("body").append("<div class='"+name+"' id='"+name+i+"'><p>"+$(this).attr('title')+"</p></div>");
var my_tooltip = $("#"+name+i);
if($(this).attr("title") != "" && $(this).attr("title") != "undefined" ){ $(this).removeAttr("title").mouseover(function(){ my_tooltip.css({opacity:0.8, display:"none"}).fadeIn(400); }).mousemove(function(kmouse){ var border_top = $(window).scrollTop(); var border_right = $(window).width(); var left_pos; var top_pos; var offset = 20; if(border_right - (offset *2) >= my_tooltip.width() + kmouse.pageX){ left_pos = kmouse.pageX+offset; } else{ left_pos = border_right-my_tooltip.width()-offset; } if(border_top + (offset *2)>= kmouse.pageY - my_tooltip.height()){ top_pos = border_top +offset; } else{ top_pos = kmouse.pageY-my_tooltip.height()-offset; } my_tooltip.css({left:left_pos, top:top_pos}); }).mouseout(function(){ my_tooltip.css({left:"-9999px"}); }); } });
}
$(document).ready(function(){
simple_tooltip("area","tooltip");
});
css
div.tooltip {
width: 250px;
position: absolute;
left: -9999px;
background: #EEE;
padding: 5px;
border: 1px solid #AAA;
}
div.tooltip p{
color: #FFF;
background: #222;
padding: 5px 10px;
}