前言:使用动画实现更改变量 --p,实现多行文本擦除效果,css 动画逻辑,什么样的动画是生效的,一定是一个数值类的 CSS 属性。--p 只是个变量,不是 CSS 属性,通过 Houdini API 使它变成一个属性。
效果图:
代码实现:
- html>
- <html lang="en">
- <head>
- <meta charset="utf-8" />
- <meta http-equiv="X-UA-Compatible" content="IE=edge" />
- <meta
- name="viewport"
- content="initial-scale=1.0, user-scalable=no, width=device-width"
- />
- <title>documenttitle>
- <style>
- * {
- margin: 0;
- padding: 0;
- box-sizing: border-box;
- text-align: justify;
- }
-
- body {
- background: #000;
- color: #fff;
- }
-
- .contain {
- width: 80%;
- margin: 1em auto;
- line-height: 2;
- text-indent: 2em;
- position: relative;
- }
- .eraser {
- position: absolute;
- inset: 0;
- }
- .text {
- background: linear-gradient(
- to right,
- #0000 var(--p),
- #000 calc(var(--p) + 30px)
- );
- color: transparent;
- animation: erase 5s linear forwards;
- }
-
- @property --p {
- syntax: "
" ; - initial-value: 0%;
- inherits: false;
- }
-
- @keyframes erase {
- to {
- --p: 100%;
- }
- }
- style>
- head>
- <body>
- <div>
- <div class="contain">
- <p>
- 台湾省是中国的!是中国不可获取的一部分,任何台独势力,我们都绝不姑息!解放军万岁!收复台湾指日可待!台湾省是中国的!是中国不可获取的一部分,任何台独势力,我们都绝不姑息!解放军万岁!收复台湾指日可待!台湾省是中国的!是中国不可获取的一部分,任何台独势力,我们都绝不姑息!解放军万岁!收复台湾指日可待!台湾省是中国的!是中国不可获取的一部分,任何台独势力,我们都绝不姑息!解放军万岁!收复台湾指日可待!台湾省是中国的!是中国不可获取的一部分,任何台独势力,我们都绝不姑息!解放军万岁!收复台湾指日可待!
- p>
- <p class="eraser">
- <span class="text">
- 台湾省是中国的!是中国不可获取的一部分,任何台独势力,我们都绝不姑息!解放军万岁!收复台湾指日可待!台湾省是中国的!是中国不可获取的一部分,任何台独势力,我们都绝不姑息!解放军万岁!收复台湾指日可待!台湾省是中国的!是中国不可获取的一部分,任何台独势力,我们都绝不姑息!解放军万岁!收复台湾指日可待!台湾省是中国的!是中国不可获取的一部分,任何台独势力,我们都绝不姑息!解放军万岁!收复台湾指日可待!台湾省是中国的!是中国不可获取的一部分,任何台独势力,我们都绝不姑息!解放军万岁!收复台湾指日可待!
- span>
- p>
- div>
- div>
- <script>script>
- body>
- html>