只影响没有父母的孩子
Affecting only the hovered children without the parents
下面的代码在每个DOM元素上添加一个红色的阴影,我如何才能只标记光标下的元素?
$( "html *" ).hover(function() {
$( this ).css('box-shadow','inset 0 0 3px red');
}, function() {
$( this ).css('box-shadow','none');
}
);
});
这是我的jsfiddle: https://jsfiddle.net/eapo/7Lyt9qeb/2/
您需要查看document.elementFromPoint
使用mousemove
事件,target
是您在
document.body.addEventListener("mousemove",function(e){
// clear "hovered" class
var elems = document.getElementsByClassName("hovered");
for(var a=elems.length-1; a>=0; a--){elems[a].classList.remove("hovered");}
//add "hovered" class to target
e.target.classList.add("hovered");
});
div{
display:inline-block;
outline: 1px solid;
font-size:0px;
width:50%;
height:50%;
}
div.hovered{
background-color:rgba(255,0,0,0.5);
}
body{
width:400px;
height:400px;
}
<body>
<div>
<div>
<div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
</div>
<div>
<div></div>
</div>
</div>
</body>
代替:hover
,我建议添加两个委托事件侦听器:
-
mouseenter
事件监听器,用于检测元素何时进入元素。它不会冒泡,所以它只会在最深的悬停元素上被调用。 -
mouseout
事件监听器。当鼠标从一个元素移动到它的后代元素时,这个事件也会发生。
$("html").on('mouseenter', '*', function() {
this.style.boxShadow = 'inset 0 0 5px red';
}).on('mouseout', '*', function(e) {
this.style.boxShadow = '';
console.log(e.target);
});
body {
width: 400px;
}
div {
min-height: 20px;
border: 1px solid;
margin: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<div>
<div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
</div>
<div>
<div></div>
</div>
</div>
不需要JavaScript,使用css选择器last-child with hover
body:last-child:hover {
background: #ff0000;
}
编辑我误解了你的问题,这是不可能的,只是css这里是一个jQuery选择器,以获得最深的元素。
$('body *:not(:has("*"))');
相关文章:
- 当选择不同的父母时,我如何使条件形式的孩子消失并清除
- 反应.js:同一父母的两个孩子之间的通信
- 在另一个父母的孩子中更改父母
- 如何在鼠标悬停时仅悬停父母李而不是孩子
- 如何使用父母,之前,孩子等
- D3 可折叠力布局混淆了孩子和父母
- jQuery代码:从父级到子级;不是从孩子到父母
- 防止孩子在父母鼠标向上后点击
- 在骨干中使用手动ID绑定是否正确.js孩子到父母
- 如果一个模型在续集中引用自身,如何让所有孩子或父母在多对多关联中
- 试着根据父母的位置来定位孩子
- 如何为父母's的孩子ul
- 得到父母的第n个孩子
- Javascript通过父母ID选择孩子
- 孩子的身高是父母身高的80%(身高未知)
- 如何将一个孩子附加到两个父母
- D3 .js:如何根据孩子和父母的值来调整D3分区表的大小
- 只影响没有父母的孩子
- 我怎么能从孩子那里提到父母呢?
- 在序列的阳光下,如何给孩子和父母一样的颜色