试图让一个div在悬停时从另一个div后面向下滑动

时间:2016-10-03 00:21:36

标签: javascript jquery html css

我正在尝试使用带有一些文本的div,这些文本在悬停时会向下滑动另一个包含更多文本的div。我目前很难实现这一目标。如果一个好的解决方案包括JQuery,那么你们ELI5(我之前从未使用过JQuery)吗?下面列出的当前尝试是我正在寻找的基础。我只是想在悬停时显示动画,显示其他文本向下滑动,而不是突然出现。

.container {
  font-size: 2em;
  box-shadow: 0px 0px 3px 1px black;
  margin: 20px;
  padding: 20px;
  background-color: #E7E7EF;
  display: block;
  margin-left: auto;
  margin-right: auto;
  border-radius: 10px;
  width: 80%;
  margin-top: 50px;
  -webkit-transition: 0.5s;
  transition: 0.5s;
}
.below {
  display: none;
  -webkit-transition-duration: 0.5s;
  transition-duration: 0.5s;
}
.container:hover .below {
  display: block;
}
<div class="container">
  <div class="above">
    <p>
      Some text in the above div
    </p>
  </div>
  <div class="below">
    <p>
      More text that slides down from under the above div
    </p>
  </div>
</div>

1 个答案:

答案 0 :(得分:1)

使用overflow代替display https://jsfiddle.net/yb6vct8a/1/

.container {
    font-size: 2em;
    box-shadow: 0px 0px 3px 1px black;
    margin: 20px;
    padding: 20px;
    background-color: #E7E7EF;
    display: block;
    margin-left: auto;
    margin-right: auto;
    border-radius: 10px;
    width: 80%;
    margin-top: 50px;
    -webkit-transition: max-height 0.8s;
    -moz-transition: max-height 0.8s;
    transition: max-height 0.8s;


}

.below {
    max-height: 0;
    overflow: hidden;

    /* Set our transitions up. */
    -webkit-transition: max-height 0.8s;
    -moz-transition: max-height 0.8s;
    transition: max-height 0.8s;
}

.container:hover .below {

    max-height: 200px;


}