css 防止mask-img屏蔽滚动条

xdnvmnnf  于 2023-04-01  发布在  其他
关注(0)|答案(1)|浏览(108)

我有一个可滚动的div,它带有一个蒙版,可以使文本向底部淡入。问题:滚动条也被屏蔽了。在我不知道滚动条大小的假设下,如何防止这种情况发生?
额外收获:如何让渐变从底部开始50px,而不使用旧的-webkit-gradient

#content-wrapper {
  height: 150px;
  width: 200px;
  background-color: rgba(0, 0, 0, 0.2);
}

#content {
  height: 150px;
  width: 200px;
  color: white;
  overflow-y: scroll;
  -webkit-mask-image: linear-gradient(rgba(0, 0, 0, 1), transparent);
}
<div id="content-wrapper">
  <div id="content">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas nec libero sodales, feugiat arcu consequat, faucibus orci. Integer facilisis felis id leo iaculis dapibus. Nulla facilisi. Suspendisse potenti. Mauris cursus, erat ut euismod tincidunt, leo magna ullamcorper felis, in blandit felis ipsum mattis ipsum. Suspendisse arcu risus, ultrices et purus sed, blandit molestie turpis. Fusce condimentum eros vitae purus tempus, in iaculis lorem molestie. Integer sagittis eros nec magna vehicula, ut ornare ante consequat. Donec volutpat arcu dui, id dignissim tortor dictum vitae. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam venenatis nulla tellus, vitae vestibulum neque pharetra at. Proin vel posuere sem, nec porta augue. Morbi interdum lorem lorem. Mauris mollis euismod lobortis.
  </div>
</div>
k4ymrczo

k4ymrczo1#

可以在一个蒙版中使用多个渐变,第一个渐变会遮盖内容,第二个渐变会为滚动条创建一个未被遮盖的区域。

#content {
  overflow-x: hidden;
  overflow-y: overlay; /* prevent the scrollbar from adding padding */

  mask-image:
    linear-gradient(rgba(0, 0, 0, 1), transparent), /* main content */
    linear-gradient(to left, black 5px, transparent 6px); /* not masked area for scrollbar */
  mask-size: 100% 100%;
  mask-position: 0 0, 100% 0;
  mask-repeat: no-repeat, no-repeat;
}

这在使用custom scrollbar时效果最好。

相关问题