Bodymovin.js 不工作 - 动画不渲染
Bodymovin.js not working - animation is not rendering
我正在尝试使用 Bodymovin 在浏览器上渲染 After Effects 动画。我已经尝试过文档中的示例,但它不起作用。它不显示动画。我正在尝试 docs
中的示例
<html>
<body>
<div id="bm"></div>
<!-- Scripts -->
<script src="./bodymovin.js"></script>
<script>
var animation = bodymovin.loadAnimation({
container: document.getElementById('bm'),
renderer: 'svg',
loop: true,
autoplay: true,
// path: 'https://raw.githubusercontent.com/airbnb/lottie-web/master/demo/bodymovin/data.json'
path: 'data.json'
})
</script>
</body>
</html>
确保您正在导入文件,因为我也遇到了这个错误。我正在向您发送我的代码,以便您的页面显示 运行,我正在使用 React,但您会明白这个概念,只需更改您的 json 文件名,我的是数据。
import React, { Component } from 'react';
import './Cool.css';
import data from './data.json';
import ReactBodymovin from 'react-bodymovin';
class AventadorPage extends Component {
render() {
const bodymovinOptions = {
loop: 1,
autoplay: true,
prerender: true,
animationData: data,
}
return (
<div className="main-container">
<div className="animation">
<ReactBodymovin options={bodymovinOptions} />
</div>
<div>
<h1 className="title">A V E N T A D O R</h1>
</div>
</div>
);
}
}
export default AventadorPage;
问这个问题已经快2年了。显然没有什么变化。现在我们必须导入 lottie,而不是 bodymovin。修复bodymovin无法识别的问题
data.json 是本地文件。我直接被 double-clicking 运行宁 index.html。这引发了 CORS 个问题。
要修复 CORS,路径需要是可访问的 URL,或者您需要 运行 在本地主机上。就这样。它应该可以解决问题。
var animation = bodymovin.loadAnimation({
container: document.getElementById('bm'),
renderer: 'svg',
loop: true,
autoplay: true,
path: 'https://raw.githubusercontent.com/airbnb/lottie-web/master/demo/navidad/data.json'
})
<html>
<body>
<div id="bm"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bodymovin/5.7.3/lottie.min.js" integrity="sha512-35O/v2b9y+gtxy3HK+G3Ah60g1hGfrxv67nL6CJ/T56easDKE2TAukzxW+/WOLqyGE7cBg0FR2KhiTJYs+FKrw==" crossorigin="anonymous"></script>
</body>
</html>
我正在尝试使用 Bodymovin 在浏览器上渲染 After Effects 动画。我已经尝试过文档中的示例,但它不起作用。它不显示动画。我正在尝试 docs
中的示例<html>
<body>
<div id="bm"></div>
<!-- Scripts -->
<script src="./bodymovin.js"></script>
<script>
var animation = bodymovin.loadAnimation({
container: document.getElementById('bm'),
renderer: 'svg',
loop: true,
autoplay: true,
// path: 'https://raw.githubusercontent.com/airbnb/lottie-web/master/demo/bodymovin/data.json'
path: 'data.json'
})
</script>
</body>
</html>
确保您正在导入文件,因为我也遇到了这个错误。我正在向您发送我的代码,以便您的页面显示 运行,我正在使用 React,但您会明白这个概念,只需更改您的 json 文件名,我的是数据。
import React, { Component } from 'react';
import './Cool.css';
import data from './data.json';
import ReactBodymovin from 'react-bodymovin';
class AventadorPage extends Component {
render() {
const bodymovinOptions = {
loop: 1,
autoplay: true,
prerender: true,
animationData: data,
}
return (
<div className="main-container">
<div className="animation">
<ReactBodymovin options={bodymovinOptions} />
</div>
<div>
<h1 className="title">A V E N T A D O R</h1>
</div>
</div>
);
}
}
export default AventadorPage;
问这个问题已经快2年了。显然没有什么变化。现在我们必须导入 lottie,而不是 bodymovin。修复bodymovin无法识别的问题
data.json 是本地文件。我直接被 double-clicking 运行宁 index.html。这引发了 CORS 个问题。
要修复 CORS,路径需要是可访问的 URL,或者您需要 运行 在本地主机上。就这样。它应该可以解决问题。
var animation = bodymovin.loadAnimation({
container: document.getElementById('bm'),
renderer: 'svg',
loop: true,
autoplay: true,
path: 'https://raw.githubusercontent.com/airbnb/lottie-web/master/demo/navidad/data.json'
})
<html>
<body>
<div id="bm"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bodymovin/5.7.3/lottie.min.js" integrity="sha512-35O/v2b9y+gtxy3HK+G3Ah60g1hGfrxv67nL6CJ/T56easDKE2TAukzxW+/WOLqyGE7cBg0FR2KhiTJYs+FKrw==" crossorigin="anonymous"></script>
</body>
</html>