文字颜色横向填充过渡

文字颜色横向填充过渡本文介绍了如何使用 CSS 和 HTML 创建一个动态效果 通过设置两个相同文字的层级并应用 CSS 动画 使蓝色文字在白色背景上从左向右渐次填充

大家好,欢迎来到IT知识分享网。

成品如图:

文字颜色横向填充过渡

 蓝色内容从左往右将白色填充。

一步一步来,

若你和我一样需要’空心文字’需要给文字添加这个样式:

text-shadow: 0 0 2px #0f97ff;

HTML结构如下:

<div class="middle-words"> <p class="default-text">change</p> <p class="transitional-text">change</p> </div>

文字颜色横向填充过渡

简单说就是两个相同的文字,然后设置脱离文档流,设置层级,然后通过js判断到一定的位置给高亮的(蓝色的文字元素)一个向右的类(动画)就好了。

具体css代码如下:

因为是scss写的,有些自定义的内容,但不影响该功能。

//动画,仅控制他的长度变化 @keyframes length-animation{ 0%{ width:0%; } 25%{ width:35%; } 50%{ width:60%; } 75%{ width:85%; } 100%{ width:100%; } } 
p{ font-family: $f-PK; text-transform: uppercase; color: $white; width: 100%; font-size: 100px; // line-height: initial; line-height: 100px; display: inline-block; white-space: nowrap; text-align: left; font-weight: 700; @media(max-width: $m-992){ font-size: 80px; display: inline-block; } @media(max-width: $m-576){ font-size: 58px; display: inline-block; } @media(max-width: $m-360){ font-size: 50px; } } .default-text{ width: 100%; text-shadow: 0 0 2px $blue-2; color: $white; } .transitional-text{ position: absolute; pointer-events: none; top: 0px; left: 0px; color: $blue-2; overflow: hidden; width: 100%; } .transitional-over{ animation: length-animation; animation-duration: 1.5s; animation-timing-function:linear; animation-delay:0s; animation-iteration-count:1; animation-direction:normal; }

值得注意的是要给元素设置不换行操作(white-space: nowrap;不然动画会有问题),文字向左对齐(不然两个元素会对不齐),以及设置为行内块元素(为了居中,这样之后让父元素text-aligin-center;就好了),这几点也是坑了我不少时间。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/118609.html

(0)
上一篇 2025-11-11 21:26
下一篇 2025-11-11 21:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信