Jquery& CSS - 重叠div

时间:2013-12-17 11:37:40

标签: javascript jquery css

当用户将鼠标悬停在Jquery和CSS上时,我正在尝试创建一个expnd div。 我的 jsFiddle 非常适合Opera浏览器,但当我将鼠标悬停在“B”框并返回框“A”时,它会被“B”框重叠。怎么解决?这是我的代码块:

HTML:

<div id="box">
    <div class="inner" id="01">
        <a href="#" class="block">
            <span id="s01" class="s01">A</span>
        </a>
    </div>
    <div class="inner" id="02">
        <a href="#" class="block">
            <span id="s02" class="s01">B</span>
        </a>
    </div>
</div>

CSS:

body {

    background-color:navy;
}
#box {
    height: 92px;
    _height: 92px; 
    width: 290px;
    _width: 270px;
    float: left;
    margin-left: 9px;
    margin-top: 48px;
    margin-bottom: 31px;
    margin-right: 26px;
    background-color: #FFF;
    _overflow:hidden;
}
.inner {
    height: 90px;
    width: 141.6px;
    _width: 121.6px;
    background-color: #FFFFFF;
    float: left;
    padding-top: 0px;
    font-family: Arial, Helvetica, sans-serif;
    font-weight: bold;
    font-size: 16px;
    color: #2DA2A8;
    cursor: pointer;
    z-index:0;
}
.s01 {
    text-align: center;
    display: block;
    height:100%;
    cursor: pointer;
    padding-top: 36px;
}
.block {
    color:#399;
}

JS:

$(document).ready(function(){


    $("#01").mouseover(function(){$(this).css({
      transition:"all 1s",transform:"scale(1.2)","z-index":"2",
      "background-color":"#24C9C4","border-top":"solid 1px white",
       "border-bottom":"solid 1px white"})})

     $("#01").mouseout(function(){$(this).css({
       transition:"all 1s",transform:"scale(1.0)","z-index":"0",
        "background-color":"#FFF","border-top":"none",
         "border-bottom":"none"})})


     $("#02").mouseover(function(){$(this).css({
      transition:"all 1s",transform:"scale(1.2)","z-index":"2",
      "background-color":"#24C9C4","border-top":"solid 1px white",
       "border-bottom":"solid 1px white"})})

     $("#02").mouseout(function(){$(this).css({
       transition:"all 1s",transform:"scale(1.0)","z-index":"0",
        "background-color":"#FFF","border-top":"none",
         "border-bottom":"none"})})

});

2 个答案:

答案 0 :(得分:2)

解决此问题的最佳方法可能是将position:relative添加到div,这将使z-index能够正常工作。

如果您不这样做,则div会默认为position:static而忽略z-index,请参阅:Why is z-index ignored with position:static?

这里有更多信息,这解释了为什么它在Opera中运行而不是Chrome:http://yagudaev.com/posts/getting-reliable-z-index-cross-browser/

position:absolute如果您想要使用它,也可以正常工作,但您需要准确指定div的放置位置。

更新了您的小提琴:http://jsfiddle.net/ua444/1/

你已经在这些div上有一个课程,所以唯一的变化是:

.inner {    
    position: relative;
}

答案 1 :(得分:1)

我已经分叉并更新了你的小提琴。

z-index和相对定位应该有效: http://jsfiddle.net/robertp/y48BD/

我从JavaScript中删除了z-index操作并使用:hover state来改变z-index:

  .inner {
    ...
    position: relative;
  } 

  .inner:hover {
    z-index: 1;
  }

我希望这是你一直追求的目标。