html – 当使用CSS悬停在重叠元素上时,元素的样式悬停状态

前端之家收集整理的这篇文章主要介绍了html – 当使用CSS悬停在重叠元素上时,元素的样式悬停状态前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个包含几个div的DOM结构.在视觉上,这些Div中的一些是其他人的孩子,但在DOM结构中他们都是兄弟姐妹.

我需要设置“父”div的悬停状态,即使悬停在其“子”div上也是如此.

有没有Javscript这样做的方法?也许通过使用div的当前位置来知道它们在另一个div中?

更新

问题是父母实际上是兄弟姐妹.只有一个容器,让我们说8个孩子. 2是更大的div,其他6个在每个更大的div内显示3.就像是:

http://jsfiddle.net/XazKw/12/

只有徘徊的孩子周围的父母才能改变颜色.

我无法改变BTW的DOM结构.

解决方法

我想不出用CSS做干净(甚至是hacky)的方法.如果您没有想出任何其他内容,这是一个Javascript方法.只需将鼠标移动到身体上即可.
function isOver( element,e ) {

    var left = element.offsetLeft,top = element.offsetTop,right = left + element.clientWidth,bottom = top + element.clientHeight;

    return ( e.pageX > left && e.pageX < right && e.pageY > top && e.pageY < bottom );

};

演示:http://jsfiddle.net/ThinkingStiff/UhE2C/

HTML:

<div id="parent"></div>
<div id="overlap"></div>

CSS:

#parent {
    border: 1px solid red;
    height: 100px;
    left: 50px;
    position: relative;
    top: 50px;
    width: 100px;
}

#overlap {
    background-color: blue;
    border: 1px solid blue;
    height: 100px;
    left: 115px;
    position: absolute;
    top: 130px;
    width: 100px;
    z-index: 1;
}

脚本:

document.body.addEventListener( 'mousemove',function ( event ) {

    if( isOver( document.getElementById( 'parent' ),event ) ) {
        document.getElementById( 'parent' ).innerHTML = 'is over!';        
    } else {
        document.getElementById( 'parent' ).innerHTML = '';
    };

},false );           

function isOver( element,bottom = top + element.clientHeight;

    return ( e.pageX > left && e.pageX < right && e.pageY > top && e.pageY < bottom );

};
原文链接:https://www.f2er.com/html/225641.html

猜你在找的HTML相关文章