我已经使用After Effects扩展程序创建了Bodymovin动画。
我遵循了tesla4给here的指示:
animationData: animationData
替换为path:
'/wp-content/uploads/data.json', assetsPath: '/wp-content/uploads/'
<div id = "lottie"></div>
。编辑...这是错误的,请参阅下面的答案。我创建了<div class="lottie">
。<body>
上方的 footer.php 中添加了此代码
标签:<script src="/wp-content/uploads/bodymovin.js"
type="text/javascript"></script>
.js和.json文件正在正常加载。
但是我遇到以下错误...
globe.js:formatted:4726 Uncaught TypeError: Cannot read property 'appendChild' of undefined
at SVGRenderer.configAnimation (globe.js:formatted:4726)
at AnimationItem.configAnimation (globe.js:formatted:6535)
at XMLHttpRequest.a.onreadystatechange (globe.js:formatted:3806)
调试代码时,可以看到这是因为动画的wrapper
变量未定义。之所以这样,是因为context
变量未定义。
我发现其他人也有类似的问题,解决方案是将.js代码添加到窗口的onload()
事件中。因此,我尝试将代码包含在window.addEventListener("load",function(event) { MY CODE },false);
我的.js文件中没有太多代码可包含在此处,但这是最后一部分,根据上述内容自定义...
var params = {
container: document.getElementById('lottie'),
renderer: 'svg',
loop: true,
autoplay: true,
path: 'wp-content/uploads/2018/12/globe.json',
assetsPath: 'wp-content/uploads/2018/12/'
};
var anim;
anim = lottie.loadAnimation(params);
非常感谢您的帮助。
答案 0 :(得分:0)
不幸的是,问题出在我的人为错误上。包含的class
中的id
而非<div>
被设置为lottie
。