百度知道的这种蒙层效果怎么实现的

clipboard.png

如上图所示的效果,当文字内容很多的时候,固定文字内容区域为一个固定高度,并且文字区域底部显示半透明的遮罩,当点击“展开”的时候,文字区域高度全部展开,半透明遮罩效果消失。
这个效果只通过js、css可以实现吗,如果可以,会不会有闪一下的效果,因为js需要等文字内容全部渲染出来后才可以生效。不知道是否有更好的方法。

阅读 3.9k
3 个回答

图片描述

特意去看下结构
可以通过css和js实现,div固定高度后,文字生效前就可以把这遮罩放上去了呀,这样就可以了。

纯css就可以,使用伪类加上渐变效果实现:

<div class="text-box">
  <p>文本段落文本段落文本段落...</p>
</div>
.text-box{
  position: relative;
  margin: 0 auto;
  width:300px;
  height: 250px;
  background-color: #ddd;
  overflow: hidden;
}
.text-box>p{
  padding: 0;
  margin: 0;
}

.text-box:after{
  content:"";
  position: absolute;
  left:0;
  right: 0;
  bottom: 0;
  height: 100px;
  background: linear-gradient(to bottom, rgba(0,0,0,0), white);
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题