大家好,欢迎来到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

