【发布时间】:2019-08-21 20:21:13
【问题描述】:
我有一个被多边形裁剪的 svg 图像。 我总共有 5 张图片,我让 JS 每 3 秒更改一次图片。
看起来还可以,但是图像切换太快太突然,所以我想在它们切换时对它们使用一些淡入淡出效果。
谁能帮我弄清楚如何实现这一目标? 到目前为止,我了解到 css 转换不能用于 svg 属性。
<?xml version="1.0" encoding="utf-8"?>
<svg x="0px" y="0px" viewBox="0 0 300 300"
style="position: absolute; top: 0; left: 0;" xml:space="preserve">
<clipPath id="clip01">
<polygon class="st0 line01"
points="212.1,0.7 212.1,175.5 434.9,85.2" />
</clipPath>
<image xlink:href="img/bg_01.jpg" x="-100" y="0" width="1000"
height="500" style="clip-path: url(#clip01);" opacity="1" />
</svg>
<script>
$(function () {
var i = 1;
function changeBG() {
document.querySelector("image").setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', 'img/bg_0' + i + '.jpg');
i++;
}
setInterval(changeBG, 2000);
});
</script>
【问题讨论】: