Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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_Html_Css_Hover - Fatal编程技术网

Javascript 如何检测鼠标悬停在另一个元素中?

Javascript 如何检测鼠标悬停在另一个元素中?,javascript,html,css,hover,Javascript,Html,Css,Hover,我有一个区域图,如果某个区域悬停,我会在其中显示箭头(JavaScript)。 正如您在片段中看到的,有“金德兰”和“太空中心”。 我想做的是,如果你将鼠标悬停在“Kinderland”上,并且“Spacecenter”箭头在它前面(代码片段3),那么“Kinderland”箭头就会出现 下面是一个JSFIDLE: 无标题文件 .没有{ 显示:无; } #mapMainWrap{ 宽度:360px; 高度:150像素; 背景图片:url(https://i.postimg.cc/rpskZ

我有一个区域图,如果某个区域悬停,我会在其中显示箭头(JavaScript)。
正如您在片段中看到的,有“金德兰”和“太空中心”。
我想做的是,如果你将鼠标悬停在“Kinderland”上,并且“Spacecenter”箭头在它前面(代码片段3),那么“Kinderland”箭头就会出现

下面是一个JSFIDLE:


无标题文件
.没有{
显示:无;
}
#mapMainWrap{
宽度:360px;
高度:150像素;
背景图片:url(https://i.postimg.cc/rpskZ4GZ/map.png);
}
.地图{
z指数:50;
}
maptrans先生{
z指数:30;
}
.mapMainArrow{
z指数:10;
}
#地图主箭头{
宽度:201px;
高度:22px;
位置:绝对位置;
排名:0;
左:0;
}
#MapMain箭头。MapMain区域1箭头{
顶部:70像素;
左:60px;
}
#MapMain箭头。MapMain区域2箭头{
顶部:70像素;
左:190px;
}
const mapMainArrows=document.getElementById('mapMainArrows');
const mapMainArrow=document.getElementsByClassName('mapMainArrow');
var Imapminarrow;
函数hideMapMainArrow(){
对于(imapMainArrow=0;imapMainArrow
假设您不需要单击箭头内的任何内容:

使用
指针事件:无在箭头上,这将阻止箭头捕捉事件,并允许它通过下面的地图(并触发
鼠标悬停
事件侦听器)

我从您的代码片段中唯一更改的是
#mapMainArrows

const mapMainArrows=document.getElementById('mapMainArrows');
const mapMainArrow=document.getElementsByClassName('mapMainArrow');
var Imapminarrow;
函数hideMapMainArrow(){
对于(imapMainArrow=0;imapMainArrow
。无{
显示:无;
}
#mapMainWrap{
宽度:360px;
高度:150像素;
背景图片:url(https://i.postimg.cc/rpskZ4GZ/map.png);
}
.地图{
z指数:50;
}
maptrans先生{
z指数:30;
}
.mapMainArrow{
z指数:10;
}
#地图主箭头{
宽度:201px;
高度:22px;
位置:绝对位置;
排名:0;
左:0;
指针事件:无;
}
#MapMain箭头。MapMain区域1箭头{
顶部:70像素;
左:60px;
}
#MapMain箭头。MapMain区域2箭头{
顶部:70像素;
左:190px;
}


你能提供一个链接吗?我想你需要鼠标看起来像指针而不是箭头,在这种情况下,你需要添加一些CSS代码,比如指针{cursor:pointer;}检查下面的URL:@Midz Elwekil,正如你在屏幕截图中看到的那样,这是一个指针。@Sumit Ridhal做了一个JSFIDDLE,我将使用CSS选项
指针事件:无在您的箭头上。非常感谢。它也可以在没有z索引的情况下工作,并且不需要透明层。
<!doctype html>
<html class="no-js" lang="de">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <title>Untitled Document</title>

<style>
.none {
display: none;
}

#mapMainWrap {
width: 360px;
height: 150px;
background-image:url(https://i.postimg.cc/rpskZ4GZ/map.png);
}

.map {
z-index:50;
}

.maptrans {
z-index:30;
}

.mapMainArrow {
z-index:10;
}

#mapMainArrows {
width:201px;
height:22px;
position:absolute;
top:0;
left:0;
}

#mapMainArrows.mapMainArea1Arrow {
top:70px;
left:60px;
}

#mapMainArrows.mapMainArea2Arrow {
top:70px;
left:190px;
}
</style>
</head>

<body>

<div id="mapMainWrap">

  <div id="mapMainArrows">
    <img id="mapMainArea1Arrow" class="none mapMainArrow" src="https://i.postimg.cc/wMyQj9KQ/area1-ar.png" width="201" height="22" alt="Area 1">
    <img id="mapMainArea2Arrow" class="none mapMainArrow" src="https://i.postimg.cc/Qdb4PxjF/area2-ar.png" width="201" height="22" alt="Area 2">
  </div>

  <img src="https://i.postimg.cc/ZqNmpdrG/maptrans.png" class="maptrans" width="360" height="150" alt="Map" usemap="#mapmain">
  <map name="mapmain" class="map">
      <area id="mapMainArea1" alt="Area 1" href="javascript:void(0)" coords="60,3,8,46,3,135,23,146,86,148,91,105,133,94,137,7" shape="poly">
      <area id="mapMainArea2" alt="Area 2" href="javascript:void(0)" coords="167,26,163,30,170,37,169,68,151,107,185,123,219,51,196,37" shape="poly">
  </map>

</div>

<script>
const mapMainArrows = document.getElementById('mapMainArrows');
const mapMainArrow = document.getElementsByClassName('mapMainArrow');
var imapMainArrow;
function hideMapMainArrow () {
  for (imapMainArrow = 0; imapMainArrow < mapMainArrow.length; imapMainArrow++) {
    mapMainArrow[imapMainArrow].classList.add("none");
  }
}

// Area 1
const mapMainArea1 = document.getElementById('mapMainArea1');
const mapMainArea1Arrow = document.getElementById('mapMainArea1Arrow');
mapMainArea1.addEventListener('mouseover', function() {
  hideMapMainArrow();
  mapMainArrows.className = "";
  mapMainArrows.classList.add("mapMainArea1Arrow");
  mapMainArea1Arrow.classList.remove("none");
}, false);

// Area 2
const mapMainArea2 = document.getElementById('mapMainArea2');
const mapMainArea2Arrow = document.getElementById('mapMainArea2Arrow');
mapMainArea2.addEventListener('mouseover', function() {
  hideMapMainArrow();
  mapMainArrows.className = "";
  mapMainArrows.classList.add("mapMainArea2Arrow");
  mapMainArea2Arrow.classList.remove("none");
}, false);
</script>
</body>
</html>