我尝试在这段代码上而不是文本上做背景滚动。
这意味着带有剪切的文本保持在原来的位置,而背景在页面中滚动到它的后面
我该怎么解决这个问题呢?
codepen上的示例:
body {
margin: 0;
background-color: #000;
}
.page {
width: 100vw;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.container {
height: 100vh;
width: 100%;
overflow-y: scroll;
}
.content {
display: flex;
justify-content: center;
align-items: center;
height: 250vh;
font-size: 96px;
background: linear-gradient(
#000 0%,
#66458e 40%,
#fff 50%,
#66458e 75%,
#000 100%
);
background-clip: text;
-webkit-background-clip: text;
color: transparent;
background-attachment: fixed;
}
.text {
text-align: center;
}
<div class="page">
<div class="container">
<div class="content">
<h1 class="text">TEST</h1>
</div>
</div>
</div>
1条答案
按热度按时间qojgxg4l1#
实现这一点的方法是使用一个带有线性渐变的背景div,然后使用position覆盖h1元素:修复以停止文本滚动。
您可以使用混合混合模式,而不是使用背景剪辑文本:与白色文本相乘以使背景穿过文本。然后我使用了一个方框阴影来遮蔽h1元素之外的剩余背景。见下文