如何在Javascript中设置函数的持续时间

时间:2016-09-03 00:46:08

标签: javascript

我想要一个javascript函数来占用我提供的时间来执行。 我知道setTimeOut()setInterval()做了什么,我不是在寻找它们。

例如,我在top:0; left:0;处有一个div 我希望我的JS函数在left:50;处取div 从left:0;left:50;获取div的时间将是我的时间。

请仅提供JavaScript解决方案。没有jQuery

由于

2 个答案:

答案 0 :(得分:2)

网络动画定义了实验Element.animate

document.getElementById("test").animate([
  { left: '0px' }, 
  { left: '50px' }
], {
  duration: 1000,
  fill: 'forwards'
});
#test {
  background-color: green;
  width: 100px;
  height: 100px;
  position: relative;
}
<div id="test"></div>

答案 1 :(得分:0)

&#13;
&#13;
var timeInMs = 500;

document.getElementById("test").style.transition = "all "+timeInMs+"ms";
&#13;
#test {
  background-color: green;
  width: 200px;
  height: 150px;
  margin-left: 0;
}
&#13;
<div id='test' onclick="this.style.marginLeft = '50px';"></div>
&#13;
&#13;
&#13;

我相信这是你正在寻找的,没有jQuery要求。

编辑:我根据以下评论起草了一个新版本。

&#13;
&#13;
var timeInMs = 500;

document.querySelectorAll("#test *").forEach(function(a){
  a.style.transition = "all "+timeInMs+"ms";
  a.addEventListener("click",function(){
    this.style.margin = 0;
    this.style.opacity = 0;
    this.style.width = 0;
  });
});
&#13;
#test * {
  background-color: green;
  width: 200px;
  height: 150px;
  margin: 10px;
  display: inline-block;
}

#test {
  background-color: lightblue;
  display: inline-block;
}
&#13;
<div id="test">
  <div></div><div></div><div></div>
</div>
&#13;
&#13;
&#13;