使用Jquery将元素动画制作到窗口的右边缘

Animate Element to right edge of the window using Jquery?

本文关键字:窗口 右边 边缘 动画制作 Jquery 元素 使用      更新时间:2023-09-26

我正在尝试使用Jquery为窗口右侧的div设置动画。我还使用Jquery UI来更改div的颜色。我还在整个窗口中设置div的动画。不过,我只是在试验jquery动画,没有什么关键的。无论如何,这就是我迄今为止的代码:

HTML:

   <div id="box1"></div>
    <button type="button" id="btn"> Click Me! </button>

CSS:

        #box1{
            width: 200px;
            height: 200px;
            background-color: red;
            border: 0px solid black;
            border-radius: 0px;
            position: relative;
        }
        #btn{
            position: fixed;
            top: 600px;
            display: table-cell;
            font-size: 30px;
        }   

JQuery:

var allow = true;
var animating = false;
$("#btn").click(function(){

    if(allow == true){

        if(!animating){
          animating = true;
          $("#btn").hide();

          $("#box1").animate({backgroundColor: "yellow", borderWidth: "5px"}, 1000, "linear").animate({left: "500px"}, 1000).animate({top: "500px"}, 1000);
          $("#box1").animate({left: "1000px", top: "0px"}, 1000).animate({left: "500px"}, 1000).animate({top: "500px"}, 1000, function(){
            allow =  false;
            animating = false;
            $("#btn").show().text("Click Me Aagain!");
        });
      }
  } else {
   if(!animating){
      $("#btn").hide();
      animating = true;
      $("#box1").animate({top: 0}, 1000).animate({left: 0}, 1500).animate({backgroundColor: "red", borderRadius: 0, borderWidth: 0, width: "100px", height: "100px"}, 1000, function(){
         $("#btn").show().text("Start Over!");
     });

      animating = false;
      allow = true;
  }
}

});

顶部的第一个变量是在两个不同的动画序列之间切换。下一步是确保动画不会被错误地触发两次。我试图一直向右移动的元素是#box1,我希望它在第一个序列的末尾这样做!

谢谢你的帮助!

有两个选项可以让长方体在区域的右边缘设置动画。

1) 您可以设置css"left:auto",并设置css"right:0"的动画。要做到这一点,你需要采取一些额外的步骤。您需要将css"position:absolute"设置为该框,并需要将该框包装在一个div中,该div具有宽度为100%的css"position:relative"。这样,长方体就知道右边缘的位置,因为它的最直接的父对象(具有css"position:relative")正在设置边界。执行此选项需要进行一些微调,因为在左侧位置和右侧位置之间切换动画会导致一些跳跃。

2) 该选项可以继续为左侧位置设置动画,但要使其向右设置动画,您需要jquery来计算页面的宽度,并减去框的宽度。它看起来是这样的:

left:($(document).outerWidth()-$('#box1').oeterWidth(())