将动画类添加到Div的问题

时间:2017-10-04 04:01:21

标签: javascript jquery css

将鼠标悬停在红色框上会在框中添加sweep to top蓝色动画,但我想通过set-timeout功能添加此功能而不悬停。你可以告诉我为什么这不起作用

setTimeout(function() {
  $('.hvr-sweep-to-top').addClass('add');
}, 8000);
.hvr-sweep-to-top {
  height: 150px;
  width: 150px;
  background: red;
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}

.hvr-sweep-to-top:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #2098D1;
  -webkit-transform: scaleY(0);
  transform: scaleY(0);
  -webkit-transform-origin: 50% 100%;
  transform-origin: 50% 100%;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}

.hvr-sweep-to-top:hover:before,
.hvr-sweep-to-top:focus:before,
.hvr-sweep-to-top:active:before {
  -webkit-transform: scaleY(1);
  transform: scaleY(1);
}

.add {
  -webkit-transform: scaleY(1);
  transform: scaleY(1);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="hvr-sweep-to-top">

</div>

2 个答案:

答案 0 :(得分:2)

您要添加的类只是一个悬停类。您必须在页面底部添加脚本,并将其添加到document.ready函数下。这里两秒后颜色会变成蓝色:

&#13;
&#13;
$( document ).ready(function() {
setTimeout(function() {
$('.hvr-sweep-to-top').addClass('new');
}, 2000);
});
&#13;
  .hvr-sweep-to-top {
  height: 150px;
  width: 150px;
  background: red;
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}

.new:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #2098D1;
  -webkit-transform: scaleY(0);
  transform: scaleY(1);
  -webkit-transform-origin: 50% 100%;
  transform-origin: 50% 100%;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}



.add {
  -webkit-transform: scaleY(1);
  transform: scaleY(1);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en">
<head>
 
  
  

  

  
</head>
<body>

<div class="hvr-sweep-to-top">


</body>
</html>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

尝试添加

var someTxt = setTimeout(function() {
  $('.hvr-sweep-to-top').addClass('add');
}, 8000);

我不确定!