小编典典

在JavaScript中触发CSS动画

css

我不知道如何使用JQuery,因此我需要一种仅可以使用JavaScript触发动画的方法。

当用户滚动页面时,我需要调用/触发CSS动画。

function start() {

  document.getElementById('logo').style.animation = "anim 2s 2s forward";

  document.getElementById('earthlogo').style.animation = "anim2 2s 2s forward";

}


* {

  margin: 0px;

}



#logo {

  position: fixed;

  top: 200px;

  height: 200px;

  width: 1000px;

  left: 5%;

  z-index: 4;

  opacity: 0.8;

}



#earthlogo {

  position: fixed;

  top: 200px;

  height: 120px;

  align-self: center;

  left: 5%;

  margin-left: 870px;

  margin-top: 60px;

  z-index: 4;

  opacity: 0.9;

}



@keyframes anim {

  50% {

    filter: blur(10px);

    transform: rotate(-15deg);

    box-shadow: 0px 0px 10px 3px;

  }

  100% {

    height: 100px;

    width: 500px;

    left: 10px;

    top: 10px;

    box-shadow: 0px 0px 15px 5px rgba(0, 0, 0, 0.7);

    background-color: rgba(0, 0, 1, 0.3);

    opacity: 0.7;

  }

}



@keyframes anim2 {

  50% {

    filter: blur(40px);

    transform: rotate(-15deg);

  }

  100% {

    height: 60px;

    width: 60px;

    left: 10px;

    top: 10px;

    margin-left: 435px;

    margin-top: 30px;

    opacity: 0.8;

  }

}



#backstar {

  position: fixed;

  width: 100%;

  z-index: 1;

}



#earth {

  position: absolute;

  width: 100%;

  z-index: 2;

  top: 300px;

}


<img src="logo.png" id="logo" onclick="start();">

<img src="earthlogo.gif" id="earthlogo" onscroll="start();">

<img src="earth.png" id="earth">

<img src="stars.jpg" id="backstar">

阅读 1199

收藏
2020-05-16

共1个答案

小编典典

触发CSS动画的最简单方法是 添加或删除类 -如何使用纯Javascript执行此操作,您可以在此处阅读:

如果您确实使用jQuery(在基本用法上应该很容易学习),则只需使用addClass/即可removeClass

然后,您要做的就是设置到给定元素的过渡,如下所示:

.el {
    width:10px;
    transition: all 2s;
}

然后,如果元素具有类,则更改其状态:

.el.addedclass {
    width:20px;
}

注意:此示例带有过渡。但是对于动画来说是相同的:只需将动画添加到具有类的元素上。

2020-05-16