javascript - 测试 Animate.css 时 element.classList.addClass 不是函数
问题描述
我已经Animate.min.css
从 github repo下载了。我可以在页面加载后看到初始动画。
<h1 class="animated bounce delay-2s">Example</h1>
但是,如果我点击一个按钮:
<button onclick = "myclick()">Animate</button>
javascript函数
function myclick() {
const element = document.querySelector('.my-modern');
element.classList.addClass('animated', 'bounceOutLeft');
}
抛出异常
test_animate.html:14 Uncaught TypeError: element.classList.addClass is not a function
at myclick (test_animate.html:14)
at HTMLButtonElement.onclick (test_animate.html:9)
我也试过添加 jquery 没有成功
<script src="jquery-3.4.1.min.js"></script>
但我不知道我应该怎么做才能解决这个问题。
我希望看到以下段落被动画化。
<p name="par_test" class="my-modern">Test this</p>
编辑(发现问题是 IE11 特定的)
看到这一行后,我addClass
从调试Animate 主页中复制了
function testAnim(x) {
$('#animationSandbox').removeClass().addClass(x + ' animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){
$(this).removeClass();
});
};
根据此评论 ,我已将其更正为
element.classList.add('animated', 'bounceOutLeft');
现在异常消失了,但我仍然无法在 IE11 上看到预期的动画。在 Chrome 中一切正常。我已将此作为问题发布在 github 上。
解决方案
Element.classList.addClass
正如您已经发现的那样,它不是一个函数。Element.classList.add
是,虽然 IE11 支持它,但它不支持向它提供多个参数,就像你正在做的那样。
MDN 上有一个可用的polyfill,您可以使用它,或者您可以使用 jQuery。
推荐阅读
- django - Django:从中央数据库获取多个应用程序的应用程序用户模型
- react-native - 任务“:react-native-firebase:compileDebugJavaWithJavac”执行失败
- swiftui - 在 ScrollView 中滑动行会禁用滚动
- laravel - 如何在 laravel + vuejs 项目中使用 .env 文件?
- core-data - 带有 coredata 的 Sirikit 扩展
- xamarin.forms - 如何在下载图像时立即打开图像
- html - 像 pinterest 这样的网格布局仅使用 css 而没有 javascript
- css - 更改 CSS 边框速记语法顺序可以吗?
- python - 将两列csv文件数据转换成字典
- php - 在 Codeigniter 中修改时编辑日期