我正在尝试做一个CSS字幕,它的文字从右边淡入,从左边淡出。只有边上的字母应该变成透明的。我称之为"不透明遮罩",它是羽化到左/右边缘。
我可以找到CSS字幕代码样本,但没有这样一个淡入淡出效果。我还希望背景是完全透明的,只有文本的边缘效果。
我试过在容器中添加渐变,但是事后看来,这似乎不是正确的方法。下面是我到目前为止编写的代码。请帮助我,谢谢!
@伯纳德·博格:我已经用第二个新的示例更新了我的代码。除此之外,没有使用不透明度--* 因此A)依赖于硬编码到底层背景颜色,B)只在纯色背景上工作 *--这对我的用例来说是可以接受的。谢谢!(有没有什么想法如何用不透明度而不是颜色来覆盖字幕?)
div#container {
width: 60%;
height: 100%;
position: absolute;
background-color: #e6e9eb;
}
div#marquee-container {
overflow: hidden;
}
p#marquee {
animation: scroll-left 10s linear infinite;
}
@keyframes scroll-left {
0% {transform: translateX( 140%)}
100% {transform: translateX(-140%)}
}
div#marquee-cover {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 40px;
background: linear-gradient(to right, rgba(230, 233, 235, 1) 0%, rgba(230, 233, 235, 0) 15%, rgba(230, 233, 235, 0) 85%, rgba(230, 233, 235, 1) 100%);
}
<div id="container">
<div id="marquee-container">
<p id="marquee">The quick brown fox jumps over the lazy dog</p>
<div id="marquee-cover"/> <!--thanks Bernard Borg-->
</div>
</div>
3条答案
按热度按时间ccrfmcuu1#
对于将来遇到这个问题的任何人来说,这个问题的答案是一个共同的努力。在问题中找到答案。
这是我所能找到的最接近您更新后的问题的答案;
由于某种原因,背景滤镜(特别是不透明的)什么都不做。奇怪。
编辑:
你可以定义一个字幕背景的图像(两边都有渐变),然后用
mix-blend-mode
来淡化文本,也许我把这个问题复杂化了。fcipmucu2#
使opacity属性具有动画效果(已清理代码以提高可读性);
边注:动画不再需要供应商前缀。
deyfvvtc3#