jQuery /CSS - 获取相对元素的位置,相应地定位工具提示
我有一张显示各个位置的地图,当将鼠标悬停在该地图上时,光标旁边会显示一个工具提示,显示有关该位置的信息。
地图是主ul id="map"的背景图,每个位置都是一个li。该位置通过 css 使用 top 和 left 来定位。
#map 是相对定位的,工具提示是绝对定位的。
我的标记如下:
<ul id="map">
<li><a href="#" class="harewood tip_trigger"><img src="images/marker.gif" width="12" height="12" alt="" /> <span class="tip"><img src="images/thumb.jpg" width="143" height="107" alt="" />Title<br />Click marker for details</span></a></li>
我可以使用 jQuery 显示和隐藏 .tip 跨度,没有问题,但我想获取父级 .tip_trigger 的位置,并将工具提示从光标偏移,例如 10px。
我该如何修改下面的jquery代码?
$(document).ready(function() {
//Tooltips
$(".tip_trigger").hover(function(){
var pos = $("#map").position();
var width = $(".tip").width();
tip = $(this).find('.tip');
tip.show(); //Show tooltip
tip.css({"left": (pos.left + width) + "px","top":pos.top + "px" });
}, function() {
tip.hide(); //Hide tooltip
});
});
我已经搞乱这个有一段时间了,尝试过 jquery 文档,但无法弄清楚。
I have a map showing various locations which when hovered over will show a tooltip next to the cursor revealing information regarding that location.
The map is a background image of the main ul id="map", with each location being a li. The location is positioned by css using top and left.
The #map is positioned relative and the tooltips are positioned absolutely.
The markup I have is as follows:
<ul id="map">
<li><a href="#" class="harewood tip_trigger"><img src="images/marker.gif" width="12" height="12" alt="" /> <span class="tip"><img src="images/thumb.jpg" width="143" height="107" alt="" />Title<br />Click marker for details</span></a></li>
I can show and hide the .tip span using jQuery no problem, but I'd like to get the position of the parent .tip_trigger, and offset the tooltip from the cursor by, say, 10px.
How would I amend the jquery code below?
$(document).ready(function() {
//Tooltips
$(".tip_trigger").hover(function(){
var pos = $("#map").position();
var width = $(".tip").width();
tip = $(this).find('.tip');
tip.show(); //Show tooltip
tip.css({"left": (pos.left + width) + "px","top":pos.top + "px" });
}, function() {
tip.hide(); //Hide tooltip
});
});
I've been messing with this for a while, have tried jquery documentation and just can't figure it out.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
algiecas 是对的,我通常会在
each
中添加一个额外的步骤,如下所示:
algiecas is right, I usually add an extra step with
each
like this:
您可能应该使用
.tip_trigger
的位置,而不是整个#map
You should probably use the position of the
.tip_trigger
, not the whole#map