如何使用 jQuery/JavaScript 为 svg 路径设置动画?
How to animate svg path with jQuery/JavaScript?
我想为 svg 的路径设置动画。我知道这可以用 <animate>
来实现,但动画只有在元素附加到某些 div 后才会开始。所以我需要找到另一个解决方案,但我无法在网上找到任何帮助。
这是fiddle所以你可以看看我有什么。
注意:现在我想要 svg 的路径来拉伸 svg。所以一开始,它是一个三角形,但它需要平滑地转换成适合周围svg的正方形。
谢谢!
// -- click the path -- //
$('path').on('click touch', function() {
$(this).parents('svg').css({
height: '100vh',
width: '100vw'
});
})
/* -- click the path -- */
* {
margin: 0;
padding: 0;
}
body {
overflow: hidden; /* -- just for this example */
}
svg {
-webkit-transition:
height 350ms ease-in-out,
width 350ms ease-in-out;
transition:
height 350ms ease-in-out,
width 350ms ease-in-out;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- click the path -->
<svg fill="#000" xmlns="http://www.w3.org/2000/svg" version="1.0" height="200" width="200" viewBox="0 0 1024 1024">
<path d="M0 0 L405 0 L405 635"/>
</svg>
SMIL 动画(即使用 <animate>
的动画)可以在单击时启动。
<svg fill="#000" xmlns="http://www.w3.org/2000/svg" version="1.0" height="200" width="200" viewBox="0 0 1024 1024">
<path d="M0 0 L405 0 L405 635 L405 635">
<animate attributeName="d" dur="350ms" to="M0 0 L405 0 L405 635 L0 635"
begin="click" fill="freeze" />
</path>
</svg>
我想为 svg 的路径设置动画。我知道这可以用 <animate>
来实现,但动画只有在元素附加到某些 div 后才会开始。所以我需要找到另一个解决方案,但我无法在网上找到任何帮助。
这是fiddle所以你可以看看我有什么。
注意:现在我想要 svg 的路径来拉伸 svg。所以一开始,它是一个三角形,但它需要平滑地转换成适合周围svg的正方形。
谢谢!
// -- click the path -- //
$('path').on('click touch', function() {
$(this).parents('svg').css({
height: '100vh',
width: '100vw'
});
})
/* -- click the path -- */
* {
margin: 0;
padding: 0;
}
body {
overflow: hidden; /* -- just for this example */
}
svg {
-webkit-transition:
height 350ms ease-in-out,
width 350ms ease-in-out;
transition:
height 350ms ease-in-out,
width 350ms ease-in-out;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- click the path -->
<svg fill="#000" xmlns="http://www.w3.org/2000/svg" version="1.0" height="200" width="200" viewBox="0 0 1024 1024">
<path d="M0 0 L405 0 L405 635"/>
</svg>
SMIL 动画(即使用 <animate>
的动画)可以在单击时启动。
<svg fill="#000" xmlns="http://www.w3.org/2000/svg" version="1.0" height="200" width="200" viewBox="0 0 1024 1024">
<path d="M0 0 L405 0 L405 635 L405 635">
<animate attributeName="d" dur="350ms" to="M0 0 L405 0 L405 635 L0 635"
begin="click" fill="freeze" />
</path>
</svg>