Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 鼠标悬停在网页文本上时突出显示映射图像的部分_Javascript_Jquery_Html_Image_Highlighting - Fatal编程技术网

Javascript 鼠标悬停在网页文本上时突出显示映射图像的部分

Javascript 鼠标悬停在网页文本上时突出显示映射图像的部分,javascript,jquery,html,image,highlighting,Javascript,Jquery,Html,Image,Highlighting,情景: 已映射多个区域的图像 页面上的文本列表 所需功能:当我将鼠标悬停在列表中的不同文本上时,映射图像中的相应区域将高亮显示 有人知道一个好的javascript工具可以做到这一点吗 我发现了一个jquery插件(),当您将鼠标移到图像本身上时,它将突出显示图像的部分。我正在寻找下一步-从图像之外的源触发高光。Highslide不完全是您所要求的,Highslide不完全是您所要求的,我查看了您提到的插件的源代码,它应该很容易扩展,以便它能够实现您想要的功能,以下是一些提示: jquery

情景:

  • 已映射多个区域的图像
  • 页面上的文本列表
所需功能:当我将鼠标悬停在列表中的不同文本上时,映射图像中的相应区域将高亮显示

有人知道一个好的javascript工具可以做到这一点吗


我发现了一个jquery插件(),当您将鼠标移到图像本身上时,它将突出显示图像的部分。我正在寻找下一步-从图像之外的源触发高光。

Highslide不完全是您所要求的,

Highslide不完全是您所要求的,

我查看了您提到的插件的源代码,它应该很容易扩展,以便它能够实现您想要的功能,以下是一些提示:

jquery.maphighlight.js的第127-136行:

mouseover = function(e) {
   var shape = shape_from_area(this);
   add_shape_to(canvas, shape[0], shape[1], $.metadata ? $.extend({}, options, $(this).metadata()) : options);
};

if(options.alwaysOn) {
   $(map).find('area[coords]').each(mouseover);
} else {
   $(map).find('area[coords]').mouseover(mouseover).mouseout(function(e) { clear_canvas(canvas); });
}
这就是所有事件魔法发生的地方。鼠标悬停功能用于突出显示区域\

在代码中,您可以通过执行以下操作来尝试查找要高亮显示的区域坐标:

$(map).find('#id_of_the_area[coords]').each(moseover);
function highlight(e) {
   $(map).find('#id_of_the_area[coords]').each(moseover);
} 
function unHighlight(e) {
   clear_canvas($(canvas));
} 
其中,
id\u\u区域
将是一个id,您为该id指定了要突出显示的
标记

如果你把它放到一个函数中,你可以从任何你需要的地方调用它

编辑:

根据您在评论中提出的问题,这里还有一些建议:

高亮显示/取消高亮显示区域的功能可以如下所示:

$(map).find('#id_of_the_area[coords]').each(moseover);
function highlight(e) {
   $(map).find('#id_of_the_area[coords]').each(moseover);
} 
function unHighlight(e) {
   clear_canvas($(canvas));
} 
在本例中,
id\u of_map
id\u of_canvas
将是map和canvas元素的id

mouseover
clear\u canvas
函数和
map
canvas
变量的范围可能存在问题。您需要小心放置此代码的位置。我建议您在尝试添加此功能之前先阅读一下jquery插件

在jquery中,您可以将事件附加到任何html元素。像这样:

$('#id_of_element').mouseover(highlight); 
$('#id_of_element').mouseout(unHighlight);
元素的id_将是要触发高亮显示的元素的id


希望这有帮助

我查看了您提到的插件的源代码,扩展它应该相当容易,这样它就可以做您希望它做的事情,这里有一些提示:

jquery.maphighlight.js的第127-136行:

mouseover = function(e) {
   var shape = shape_from_area(this);
   add_shape_to(canvas, shape[0], shape[1], $.metadata ? $.extend({}, options, $(this).metadata()) : options);
};

if(options.alwaysOn) {
   $(map).find('area[coords]').each(mouseover);
} else {
   $(map).find('area[coords]').mouseover(mouseover).mouseout(function(e) { clear_canvas(canvas); });
}
这就是所有事件魔法发生的地方。鼠标悬停功能用于突出显示区域\

在代码中,您可以通过执行以下操作来尝试查找要高亮显示的区域坐标:

$(map).find('#id_of_the_area[coords]').each(moseover);
function highlight(e) {
   $(map).find('#id_of_the_area[coords]').each(moseover);
} 
function unHighlight(e) {
   clear_canvas($(canvas));
} 
其中,
id\u\u区域
将是一个id,您为该id指定了要突出显示的
标记

如果你把它放到一个函数中,你可以从任何你需要的地方调用它

编辑:

根据您在评论中提出的问题,这里还有一些建议:

高亮显示/取消高亮显示区域的功能可以如下所示:

$(map).find('#id_of_the_area[coords]').each(moseover);
function highlight(e) {
   $(map).find('#id_of_the_area[coords]').each(moseover);
} 
function unHighlight(e) {
   clear_canvas($(canvas));
} 
在本例中,
id\u of_map
id\u of_canvas
将是map和canvas元素的id

mouseover
clear\u canvas
函数和
map
canvas
变量的范围可能存在问题。您需要小心放置此代码的位置。我建议您在尝试添加此功能之前先阅读一下jquery插件

在jquery中,您可以将事件附加到任何html元素。像这样:

$('#id_of_element').mouseover(highlight); 
$('#id_of_element').mouseout(unHighlight);
元素的id_将是要触发高亮显示的元素的id


希望这有帮助

虽然这不是非常优雅,但您可以手动触发相关区域元素的鼠标悬停事件:

<a href="..." onmouseover="$('#certain-area')
       .trigger('mouseover');">link text</a>


同样适用于mouseout。当然,这比在mousover和mouseout上使用
onmouseout
更好。虽然这不是非常优雅,但您可以手动触发相关区域元素的mouseover事件:

<a href="..." onmouseover="$('#certain-area')
       .trigger('mouseover');">link text</a>


同样适用于mouseout。当然,这比使用
onmousover
onmouseout

更好,因为我有点跟踪你-函数看起来像什么,在html中如何调用?我有点跟踪你-函数看起来像什么,在html中如何调用?