解决同层hover事件重叠闪烁问题
完整代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="js/jquery.min.js"></script>
<style>
.smallbox{
width:20px;
height:20px;
text-align: center;
background:#333;
/* position:absolute; */
/* left:25px; */
/* top:25px; */
margin:5px;
display: none;
}
.bigbox{
width:150px;
height:150px;
background:#000000;
margin: 10px;
opacity: .1;
}
.pop{
width: 150px;
height: 150px;
background: red;
position: absolute;
right: 0px;
top: 0px;
display: none;
}
.active{
display: block;
}
.smallbox span{
display: block;
width: 100%;
height: 100%;
cursor: pointer;
}
</style>
</head>
<body>
<div class="pop"></div>
<div class="bigbox" key='A'></div>
<div class="bigbox" key='B'></div>
<div class="bigbox" key='C'></div>
<div class="smallbox" key="1" style="position: absolute;left: 25px; top: 25px;"><span></span></div>
<div class="smallbox" key="2" style="position: absolute;left: 50px; top: 40px;"><span></span></div>
<div class="smallbox" key="3" style="position: absolute;left: 80px; top: 220px;"><span></span></div>
<div class="smallbox" key="4" style="position: absolute;left: 120px; top: 180px;"><span></span></div>
<div class="smallbox" key="5" style="position: absolute;left: 80px; top: 80px;"><span></span></div>
<div class="smallbox" key="6" style="position: absolute;left: 120px; top: 350px;"><span></span></div>
<div class="smallbox" key="7" style="position: absolute;left: 80px; top: 370px;"><span></span></div> <script>
$(document).ready( function(){
const arceObj={A:['5','1','2'],B:['3','4'],C:['6','7']}
let arceDom={}
// 当前所在热区
let arceKey=''
$(".bigbox").mouseover(
function(e){
// 判断是哪个热区
arceKey=$(e.target).attr('key')
arceDom=e.target
const arr =$('.smallbox')
//console.log(arr)
// 遍历这个数组 找出该热区下应该显示的小热区
arr.each(function(item){
const key=$(arr[item]).attr('key')
//console.log(key);
// 找到之后将这些smallbox元素显示
if($.inArray(key,arceObj[arceKey]) !=-1){//判断arceObj数组里是否存在key
$(arr[item]).show()
}
});
$(this).css("opacity","1")
}
); $(".smallbox").mouseover(
function(e){
$(arceDom).css("opacity","1")
// const arce=$(e.target).attr('key')
// console.log(arce)
// 当前元素的所有兄弟元素 可修改样式
// $(e.target).siblings()
const arr =$('.smallbox')
// 遍历这个数组 找出该热区下应该显示的小热区
arr.each(function(item){
const key=$(arr[item]).attr('key')
// 找到之后将这些smallbox元素显示
if(arceObj[arceKey].indexOf(key)!=-1){
$(arr[item]).show()
}
});
}
);
/*
// 反向找到当前小热区所在的大热区 key为小热区的key
function getArcekey(key){
for(var akey in arceObj){
for(var i=0;i<arceObj[akey].length;i++){
// 如果找到相同的key返回大热区的key
if(arceObj[akey][i]==key){
return akey
}
}
}
}
*/ $(".bigbox").mouseout(
function(e){
$(".smallbox").hide();
$(this).css("opacity",".1")
}
); $(".smallbox span").hover(function(){
$(".pop").addClass("active") },function(){
$(".pop").removeClass("active")
}); }
); </script>
</body>
</html>
效果图:

解决同层hover事件重叠闪烁问题的更多相关文章
- 使用jQuery的hover事件在IE中不停闪动的解决方法
在使用jQuery的hover事件时,经常会因为鼠标滑动过快导致菜单不停闪动的情况,相信很多朋友都遇到过自己做的纵向下拉菜单不停的收缩,非常的讨厌.今天在给一个网站设计菜单时也遇到了这个情况,结果在百 ...
- js中hover事件时候的BUG以及解决方法
hover事件是我们在开发前段时候遇到的稀松平常的问题,但是有没有发现会出现有一个BUg,比如,你移动到一个元素上,让它执行一个方法,然后你快速的移入移出的时候,他会进行亮瞎你眼睛的频闪效果,而且跟得 ...
- jQuery中多个元素的Hover事件
1.需求简介 jQuery的hover事件只是针对单个HTML元素,例如: $('#login').hover(fun2, fun2); 当鼠标进入#login元素时调用fun1函数,离开时则调用fu ...
- 用:hover伪类代替js的hover事件
制作二级菜单要实现鼠标移动上去显示子菜单,鼠标移出子菜单隐藏,或者其他类似需求的地方,首先我会想到用jquery的hover事件来实现,如: $(".nav").hover(fun ...
- jQuery – 鼠标经过(hover)事件的延时处理
一.关于鼠标hover事件及延时 鼠标经过事件为web页面上非常常见的事件之一.简单的hover可以用CSS :hover伪类实现,复杂点的用js. 一般情况下,我们是不对鼠标hover事件进行延时处 ...
- jquery hover事件只触发一次动画
最近工作时遇到个关于动画的问题,如下: $("div").hover( function() { $(this).animate({"margin-top":& ...
- 分享一个jquery插件,弥补一下hover事件的小小不足
hover事件有一个缺点:当你的鼠标无意划过一个dom元素(瞬间划过,这个时候用户可能不想触发hover事件),会触发hover事件 应该设置一个时差来控制hover事件的触发 比如jd左边的菜单 你 ...
- QT 托盘 hover事件捕捉
1. QSystemTrayIcon hover事件 参考:https://stackoverflow.com/questions/21795919/how-to-catch-the-mousehov ...
- 获得触发hover事件的元素id
例: <div class="menu"> <ul> <li> <a id="menu1"></a> ...
随机推荐
- requests模块使用二
1.cookies和session 1.1.什么是cookie和session? cookie是网站用来辨别用户身份,进行会话跟踪,存储在本地终端上的数据. session(会话)起来本含义是指有始有 ...
- javaweb_HTML
第一章:网页的构成 1.1概念:b/s与c/s 1.1.1 现在的软件开发的整体架构主要分为B/S架构与C/S架构: b/s:浏览器/服务器 c/s:客户端/服务器 客户端:需要安装在系统里,才可使用 ...
- matplotlib 中的一些参数设置
首先:在pycharm 中要使图显示出来,最后一定要加上 plt.show(),如: plt.bar(x, y) plt.show() 下面就是我使用 matplotlib 遇到的一些常用参数设置: ...
- javascript异步上传图片文件
html: <form action="url" enctype="multipart/form-data" id="myform" ...
- 动态规划-LCS-Uncrossed Lines
2020-02-11 21:14:18 问题描述: 问题求解: 本质就是LCS. public int maxUncrossedLines(int[] A, int[] B) { int len1 = ...
- 2020 python web开发就业要求锦集
郑州 Python程序员 河南三融云合信息技术有限公司 6-8k·12薪 7个工作日内反馈 郑州 1个月前 本科及以上2年以上语言不限年龄不限 微信扫码分享 收藏 Python程序员 河南三融云合信息 ...
- Python第六章-函数02-函数的作用域
函数 三.作用域规则 有了函数之后,我们必须要面对一个作用域的问题. 比如:你现在访问一个变量,那么 python 解析器是怎么查找到这个变量,并读取到这个变量的值的呢? 依靠的就是作用域规则! 3. ...
- 使用VS开始一个新项目配置外部库的新手总结
在使用VS做一个项目的时候,往往会需要使用各种各样的库,一般一个标准的外部库目录大体结构为: VS在配置这些库的时候有多种可行方法,但是不同的方法对于项目后续的管理和移植有不同的影响,我使用过以下三种 ...
- OpenCV-Python Canny边缘检测 | 十九
目标 在本章中,我们将学习 Canny边缘检测的概念 OpenCV函数: cv.Canny() 理论 Canny Edge Detection是一种流行的边缘检测算法.它由John F. Canny发 ...
- gunicorn的作用
gunicorn是什么: gunicorn是一种unix上被广泛使用的Python WSGI UNIX HTTP Server WSGI是什么: 先说下 WSGI 的表面意思,Web Server G ...