Javascript/CSS:文本字符串变长时会褪色

Javascript/CSS:文本字符串变长时会褪色,javascript,css,Javascript,Css,我已经找到了这个问题的答案,它可能存在于某个地方,但我不确定如何解释它,我一直在寻找方法来淡入淡出加载的文本,这不是我试图这样做的方式。我正在尝试淡化同一行上的一些文字,我将附加一个我在Photoshop中制作的模拟屏幕截图: 在我设置的当前字体系列和大小中,我希望它开始在文本中消失大约20个字符。理想情况下,如果我能做一些像 <span class="fadeout"> 或者类似的事情,这很简单 如果您的背景颜色已知(如上图中的黑色),则可以使用类似的伪CSS选择器来模拟

我已经找到了这个问题的答案,它可能存在于某个地方,但我不确定如何解释它,我一直在寻找方法来淡入淡出加载的文本,这不是我试图这样做的方式。我正在尝试淡化同一行上的一些文字,我将附加一个我在Photoshop中制作的模拟屏幕截图:

在我设置的当前字体系列和大小中,我希望它开始在文本中消失大约20个字符。理想情况下,如果我能做一些像

<span class="fadeout"> 


或者类似的事情,这很简单

如果您的背景颜色已知(如上图中的黑色),则可以使用类似的伪CSS选择器来模拟效果:

.fadeout{
位置:相对位置;
颜色:#fff;
背景:#000;
}
.淡出:之后{
内容:'';
排名:0;
底部:0;
右:0;
宽度:50%;
背景:线性梯度(90度,透明,黑色);
位置:绝对位置;
z指数:1;
指针事件:无;
}

这是一个测试长文本,例如
如果您的背景颜色已知(如上图中的黑色),那么您可以使用类似的伪CSS选择器来模拟效果:

.fadeout{
位置:相对位置;
颜色:#fff;
背景:#000;
}
.淡出:之后{
内容:'';
排名:0;
底部:0;
右:0;
宽度:50%;
背景:线性梯度(90度,透明,黑色);
位置:绝对位置;
z指数:1;
指针事件:无;
}

这是一个测试长文本,例如
您需要的是渐变文本(仅限webkit!):

h1{
字体大小:72px;
背景:-webkit线性梯度(0度,fff,#000);
-webkit背景剪辑:文本;
-webkit文本填充颜色:透明;
}
身体{
背景色:黑色;
}

测试长文本
您需要的是渐变文本(仅限webkit!):

h1{
字体大小:72px;
背景:-webkit线性梯度(0度,fff,#000);
-webkit背景剪辑:文本;
-webkit文本填充颜色:透明;
}
身体{
背景色:黑色;
}

长的测试文本
我喜欢你的解决方案,我也做过很多次。但是你可能想考虑在你的CSS中点击<代码>指针事件<代码>,使它更自然。伟大的建议-谢谢。我刚刚对我的回答做了调整。我喜欢你的解决方案,我也做了很多次。但是你可能想考虑在你的CSS中点击<代码>指针事件<代码>,使它更自然。伟大的建议-谢谢。我刚刚对我的答案进行了调整,“如果你想在一个特定点之后开始,那么你别无选择,只能将文本的褪色部分包装成一个跨度”-你也可以在渐变中添加另一个颜色停止点,比如
-webkit线性渐变(0deg,#fff,#fff 5em,#000)
-这个
5em
有点复杂“幻数”当然在这里,但它可能比我认为的文本中特定数量的字符更有意义。这个解决方案的问题是它完全忽略了Internet Explorer。IE11仍然非常常用,并且不支持
文本填充颜色
。始终最好检查是否支持CSS属性如果跨浏览器支持是项目的重要组成部分:@stybl不幸的是,这些很酷的属性无法跨浏览器标准化。标准化将使我们的生活更加轻松!否则,您的解决方案将非常优雅。“如果你想在一个特定的点之后开始,那么你别无选择,只能将文本的褪色部分包装成一个跨度”-你也可以在渐变中添加另一个颜色停止点,比如
-webkit线性渐变(0deg,#fff,#fff 5em,#000)
-这个
5em
是一个“神奇的数字”当然在这里,但它可能比我认为的文本中特定数量的字符更有意义。这个解决方案的问题是它完全忽略了Internet Explorer。IE11仍然非常常用,并且不支持
文本填充颜色
。始终最好检查是否支持CSS属性如果跨浏览器支持是项目的重要组成部分:@stybl不幸的是,这些很酷的属性无法跨浏览器标准化。标准化将使我们的生活更加轻松!否则,您的解决方案将非常优雅。