【发布时间】:2020-07-19 17:45:17
【问题描述】:
有一个小程序,可以动态地将单词拉伸到任何屏幕高度。它基于innerHTML。当单词发生变化时,如何使其淡入淡出?
let text = document.getElementById("text");
let input = document.getElementById("input");
let svg = document.querySelector("svg");
function changeWord() {
text.innerHTML = input.value;
svg.setAttributeNS(null, "viewBox", `-4 0 16 ${text.getComputedTextLength()}`);
}
* {
padding: 0;
margin: 0;
}
svg {
height: 100vh;
font-family: roboto, sans-serif;
font-size:16px;
border:1px solid;
}
input {
position: fixed;
top: 0;
right: 0;
border: 2px solid red;
}
<svg viewBox="-4 0 16 75">
<g transform="rotate(90 0 0)">
<text id="text">Skibpidi</text>
</g>
</svg>
<input value="Skibidi" oninput="changeWord()" id="input" type="text">
【问题讨论】:
-
设置元素的内部 HTML 不是动画过程。
-
是否可以将其更改为其他可以动画的方法或属性?
-
您可以在同一位置创建一个新元素,将其淡入并淡出旧元素。或者您可以淡出,更改
innerHTML,然后淡入。
标签: javascript html css svg