反复滑动div左右

时间:2015-02-23 05:48:11

标签: javascript jquery html css

我正在尝试创建一个div,它从屏幕的左侧向右移动,反复出现。我想让它看起来好像是在轴上摆动。我有当前的代码,但是,有时当你加载页面时,div从左向右移动然后再次卡住试图向右移动。

   moveBlock: function(){
    var madeRight = false;
    $('.curBlock').css({"left": "2%"});
    intv = setInterval(function(){
        var curBlock = $('.curBlock');
        if(parseInt($(".curBlock")[0].style.left.replace("%", "")) < 42 && parseInt($(".curBlock")[0].style.left.replace("%", "")) > 1 && !madeRight){
            console.log("hi");
            $('.curBlock').css({"left": parseInt($(".curBlock")[0].style.left.replace("%", "")) + 1+"%"});
        }else if(parseInt($(".curBlock")[0].style.left.replace("%", "")) > 1 || parseInt($(".curBlock")[0].style.left.replace("%", "")) == 42){
            madeRight = true;
            $('.curBlock').css({"left": parseInt($(".curBlock")[0].style.left.replace("%", "")) - 1+"%"});
        }else{
            clearInterval(intv);
        }
    }, 50)
},
  processBlock: function(){
    setInterval(game.moveBlock(), 1000);
  }

非常感谢任何帮助实现这一目标。

感谢。 : - )

1 个答案:

答案 0 :(得分:0)

考虑CSS动画:

setTimeout(function() { 
  var element = document.getElementById("d1"); 
  document.body.appendChild(element.cloneNode(true)); 
  element.classList.toggle("sidetoside"); 
}, 2500); 
@keyframes slide {
  from {
    margin-left: 100%;
  }

  to {
    margin-left: 0%;
  }
}

.sidetoside {
  -o-animation: slide 2s linear 0s infinite alternate;
  -moz-animation: slide 2s linear 0s infinite alternate;
  -webkit-animation: slide 2s linear 0s infinite alternate;
  animation: slide 2s linear 0s infinite alternate;
}
<div id="d1" class="sidetoside">
  I'm a div! I move!
  <p>
    I'm more text in the div!
  </p>
</div>

您也可以使用AnimationEvent来响应动画中的更改。