javascript - 通过 Javascript 动画变换比例
问题描述
因此,我正在为 SVG 按钮设置动画,并且我想通过 Javascript 将变换属性与带有不透明度属性的淡出结合起来。
代码看起来像这样:(考虑到它带有不透明度 0 和比例 0)
(我知道我这样做的方式是不正确的,因为它会覆盖直到最后设置的属性)
function hiA(){
pathA.setAttribute("transform", "scale(1)");
pathA.setAttribute("transform", "scale(.5)");
pathA.setAttribute("transform", "scale(1)");
pathA.setAttribute("opacity", "1");
}
相同但相反:(考虑到它带有不透明度 1 和比例 1)
function byeA(){
pathA.setAttribute("transform", "scale(.5)");
pathA.setAttribute("transform", "scale(1)");
pathA.setAttribute("transform", "scale(0)");
pathA.setAttribute("opacity", "0");
}
我不知道这是否可能,或者是否最好在 CSS 上添加一个带有动画的类。
解决方案
您可以在 css 中设置类和样式:https ://www.w3schools.com/css/css3_animations.asp
JS:
pathA.className+="hiA"
CSS:
@keyframes example {
0% {transform:scale(1);}
50% {transform:scale(.5)}
100% {transform:scale(1);opacity:1;}
}
.hiA{
animation: example 1s;
}
参见示例:
function hiA(){
var pathA=document.getElementById("pathA");
pathA.className="hiA";
setTimeout(function(){ pathA.className=""; }, 3000);
}
@keyframes example {
0% {transform:scale(.5);}
50% {transform:scale(1);}
100% {transform:scale(0);}
}
.hiA{
animation: example 3s;
}
<button onclick="hiA()" id="pathA">animation me</button>
ED
推荐阅读
- visual-studio - 独立 IntelliTrace 收集的记录仅显示外部代码
- javascript - 在 three.js 中使用点云创建平面网格
- java - 如何调用返回 Observable 的多个 API
并将他们的响应汇总到单个对象 - c - C 使用 getline 忽略换行符 \n
- r - 将数据帧子集到 R 中的“最佳正方形”的函数
- python - Pandas 有效地重新索引和插值时间序列(重新索引丢弃数据)
- reactjs - React 16.5 与 firefox 45.3.0 ers 的兼容性
- powershell - 为什么inno setup中的powershell脚本在每两个字符之间打印空格?
- c++ - 我在执行任何程序时在 devcpp 中被拒绝访问
- ansible - Ansible 循环遍历一组 dicts,注册该列表,然后打印特定的输出