我有一个绝对定位的 div,具有背景颜色渐变。我有这个文本,我想在向上滚动文本时将其更改为白色。
我目前正在使用“混合混合模式”属性来实现这一点,但我找不到任何可以将文本从黑色变为白色的设置。有没有人这样做过或者能想到一个我能做的把戏?
.bg-container {
position: fixed;
top: -30px;
left: 0;
width: 100px;
height: 100px;
}
.gradient-background {
position: absolute;
top: 0;
left: 0;
width: 100px;
height: 200px;
background-image: linear-gradient(to bottom, rgb(100, 182, 240) 15%, rgb(81, 155, 244));
transform: skewY(-15deg);
}
.scroll-content {
position: absolute;
top: 50px;
}
.scroll-content p {
color: #000;
mix-blend-mode: overlay;
}
/*hack for iOS*/
.scroll-content p:after{
content: '\200c'
}
<div class="bg-container">
<div class="gradient-background">
</div>
</div>
<div class="scroll-content">
<p> abc 1 </p>
<p> abc 2 </p>
<p> abc 3 </p>
<p> abc 4 </p>
<p> abc 5 </p>
<p> abc 6 </p>
<p> abc 7 </p>
<p> abc 8 </p>
<p> abc 9 </p>
<p> abc 10 </p>
<p> abc 11 </p>
<p> abc 12 </p>
<p> abc 13 </p>
<p> abc 14 </p>
<p> abc 15 </p>
<p> abc 16 </p>
<p> abc 17 </p>
<p> abc 18 </p>
<p> abc 19 </p>
</div>
*编辑 1:更改了我的示例片段代码。背景渐变不仅仅是一个矩形 div。它有点倾斜,这就是让它如此困难的原因。所以文本在边界处变成了两种色调。
*为清楚起见,编辑 2:我希望文本在白色背景上时为黑色(#000 纯色),在渐变/图像上时为白色(#FFF 纯色)。我的内容是可滚动的文本,如代码示例中所示。
*编辑 3:iOS Safari 不兼容,除非您执行以下 hack。为每个文本元素添加零宽度空间​ ;
以使其工作。这可以通过我在 CSS 标记中添加的 CSS 属性轻松完成。