【问题标题】:Jquery for tooltip on image map area shapesJquery 用于图像地图区域形状的工具提示
【发布时间】:2014-10-29 02:13:18
【问题描述】:

我已经开始使用我找到的一些 jquery 示例为图像地图创建悬停时的自定义工具提示。

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>

<script>
    $(function() {
        $( document ).tooltip();
    });
</script>


<img src="http://blahblahblah" alt="HTML Map" border="0" usemap="#image" class="map"/>

<map name="image">
    <area shape="rect" coords="19, 138, 177, 161" title="Popup Message" />
    <area shape="rect" coords="19, 178, 314, 192" title="Another Popup Message" />
    <area shape="rect" coords="23, 203, 304, 217" title="A Third Popup Message" />
</map>

<label for="userid">Your userid:</label><input id="userid" title="This Popup Message Appears in the Right Place">

当我将鼠标悬停在图像地图区域上时,它会在屏幕左上方弹出工具提示,而不是靠近鼠标指向的位置。它出现在每个形状的相同位置。

对于其他元素,例如我在图片下方包含的“标签”演示,工具提示出现在标签的正确位置,它应该在哪里。

我尝试根据what I see here 添加位置信息,但我添加的任何内容要么无效,要么使代码无效,我什么也得不到。如果我添加此职位信息,我看不到任何变化:

$( document ).tooltip({ 
    my: "right center", at: "right center" 
}); 

图像地图区域的工具提示仍然只出现在整个页面的左上角。当我尝试使用其他位置参数时,它会破坏整个东西,所以没有工具提示。

有什么想法吗?

更新:

即使没有任何位置参数,它对于页面上的任何其他元素、输入表单、搜索表单、“编辑”按钮等都可以正常工作。出现正确样式的 jquery 工具提示,并且与这些元素相邻,无论它们在页面上的什么位置。

它只是出现在其他地方的图像地图区域矩形上。因此,它识别出足以触发工具提示的区域形状,但不会将工具提示与其相邻。

更新 II

我发现 jsquery 小部件似乎只能在 block 元素上正确运行(并且 area 不是块元素),然后偶然发现了一篇似乎证实了这一点的帖子,see response #5 here.。我已经尝试添加将“区域”定义为块元素的 CSS 样式,在尝试了更多并改变了相当多的位置之后,我想出了一些可行的方法:

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>

<style>
   area {
   display: inline-block;
   }
</style>

<script>
    $(function() {
    $( document ).tooltip({position: {at: "center-675 center-450"}});
    });
</script>


<img src="http://blahblahblah" alt="HTML Map" border="0" usemap="#image" class="map"/>

<map name="image">
    <area shape="rect" coords="19, 138, 177, 161" title="Popup Message" />
    <area shape="rect" coords="19, 178, 314, 192" title="Another Popup Message" />
    <area shape="rect" coords="23, 203, 304, 217" title="A Third Popup Message" />
</map>

这会将工具提示放在图像的中心,这很好,我不需要它们准确地位于人点击的位置,只是可见且不太远。我不知道为什么它需要负 675,但它有效。

【问题讨论】:

    标签: javascript jquery css jquery-ui


    【解决方案1】:

    我认为您需要添加position 作为选项第一个和第二个问题可能是您在html 之前执行js,将jquery 脚本移动到末尾jsfiddle example here

    $(function() {
      $( document ).tooltip({ position: { my: "right center", at: "right center" } });
    });
    

    【讨论】:

    • 谢谢,他们都没有改变它。 (我的代码中有“位置”选项,我在这里的示例中错误地省略了它)。我认为 js/jquery 即使在图像映射之前使用脚本也可以运行,因为工具提示的样式是由 jquery-ui.css 创建的。如果我删除所有脚本,那么它会恢复为正常的 html 工具提示——在这种情况下,它们正好位于您悬停的图像地图区域,有趣的是。
    猜你喜欢
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多