如何利用悬停在另一个div下方的div上

时间:2016-02-05 10:34:02

标签: html css css3 css-animations

我尝试在我的网站侧面制作一个菜单,当它悬停在它上面时会推出。首先,我的宽度扩展,但文本看起来很奇怪,所以我想我会使用CSS动画来改变div的位置,使其向右移动。我得到的问题是那些菜单div覆盖了'main'div。在主div下获取这些div的唯一方法是使用z-index: -1但是:hover不再有效。我尝试过pointer-events: none;,但这似乎也不起作用。

<div id="container">
    <div id="header">
        <img id="mainpic" src="pokebalicon.png" />
    </div>
    <div class="sidediv" id="first">
        <p>Homepage</p>
    </div>
    <div id="mainpage">
        text
    </div>
</div>

和CSS

#container {
    width: 820px;
    height: 700px;
    margin: 100px auto;
    position: relative;
}
#header {
    padding: 10px;
    height: 100px;
    width: 100%;
    background-color: transparent;
    overflow: hidden;
}
#mainpage {
    height: 600px;
    width: 100%;
    background-color: #FFFFFF;
    border-radius: 10px;
    padding: 20px;
    border: 1px solid #D5D4D4;
    pointer-events: none;
}
.sidediv{
    position: absolute;
    left: 721px;
    height: 40px;
    width: 170px;
    text-align: center;
    margin-top: 50px;
    border: 1px solid #000000;
    border-radius: 0 5px 5px 0;
    z-index: -1;
}

.sidediv:hover启动一个更改left的动画,使其看起来像被拔出。但遗憾的是,当盘旋在一边时没有任何反应。知道如何解决这个问题吗?

悬停看起来像这样:

.sidediv:hover{
    -webkit-animation: example 0.5s forwards;
    animation: example 0.5s forwards;
}
@-webkit-keyframes example {
    100% {left: 841px;}
}
@keyframes example {
    100% {left: 841px;}
}

1 个答案:

答案 0 :(得分:0)

试试这个

#container {
  width: 820px;
  height: 700px;
  margin: 100px auto;
  position: relative;
}

#header {
  padding: 10px;
  height: 100px;
  width: 100%;
  background-color: transparent;
  overflow: hidden;
}

#mainpage {
  height: 600px;
  width: 100%;
  background-color: #FFFFFF;
  border-radius: 10px;
  padding: 20px;
  border: 1px solid #D5D4D4;
}

.sidediv {
  position: absolute;
  left: 721px;
  top: 80px;
  height: 40px;
  width: 170px;
  text-align: center;
  margin-top: 50px;
  border: 1px solid #000000;
  border-radius: 0 5px 5px 0;
  z-index: -1;
  transition: 0.7s
}

#container #mainpage:hover + .sidediv {
  z-index: 1;
  background: pink;
  left: 0px
}
<div id="container">
  <div id="header">
    <img id="mainpic" src="http://i.imgur.com/IMiabf0.jpg" />
  </div>
  <div id="mainpage">
    text
  </div>
  <div class="sidediv" id="first">
    <p>Homepage</p>
  </div>
  
</div>