使用Animate.css

Animate.css是一个css动画库,可以做出一些非常好看的动画;

官网:https://animate.style

Animate.css非常容易上手,但是动画是一开始就加载出来,不能控制;

如何通过js事件,比如点击事件控制呢?

代码:

<html>
<head>
    <meta charset="utf-8"> 
    <title>Animate 实例</title>
   <!-- 引入 -->
<head>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.0/animate.min.css">
</head>
<style type="text/css">
    /* CSS代码 */
#box {
  width: 100px;
  height: 100px;
  background: paleturquoise;
  margin: 100px auto;
}
</style>

<script type="text/javascript">
 /* JS代码 *//* 定义animateCss函数(传过来的元素,动画名,回调函数) */
function animateCss(element, animationName, callback) {
  /* 获取传过来的 */
  const node = document.querySelector(element);
  /* 给元素加上基础类animated,还有动画类 */
  node.classList.add('animated', animationName);
  function handleAnimationEnd() {
    /* 移除基础类和动画类 */
    node.classList.remove('animated', animationName);
    /* 解除当前元素的事件监听 */
    node.removeEventListener('animationend', handleAnimationEnd);    /* 如果有回调函数,就执行回调函数 */
    if (typeof callback === 'function') callback();
  }
  /* 通过事件监听,当动画结束后,执行handleAnimationEnd函数 */
  node.addEventListener('animationend', handleAnimationEnd);
}
</script>
</head>


<body>
 <!-- HTML代码,设置了一个div和一个按钮 -->
<div id="box" ></div>

<center>
  <!-- box是标签的id,bounce是元素的动画效果,可从官网找 -->
<button id="btn" onclick="animateCss('#box','bounce')">btn</button>   
</center>
</body>



</html>

效果,只要点击btn按钮,就会跳动:

 

 

注意:这是3.7.0的版本,目前的Animate.css已经更新到了4.1,如果引入最新的,需要修改js的函数

 

posted @ 2022-09-12 14:22  2337  Views(181)  Comments(0Edit  收藏  举报