【问题标题】:Jquery animate div to same position as another divJquery 将 div 动画到与另一个 div 相同的位置
【发布时间】:2011-05-21 13:09:35
【问题描述】:

如何将一个 div 设置为与另一个 div 相同的位置。

我想将#div1的左侧位置动画到#div2的左侧位置

当我使用 .position().left 或 .offset().left 获取 #div2 的左侧位置然后尝试将 #div1 动画到相同位置时,动画会运行,但会将 #div1 移动到相同位置作为#div 2 加上 #div1 的原始位置(即它们没有对齐)。

这是脚本的简化版本。希望你能帮忙:)

   <script> 
   $(function({
     var end = $(#div2).position().left;
     $(#div1).animate({"left": end.left}, "slow");
    });
   </script>

  <html>
  <div id="div1"></div>
  <div id="div2"></div>
  </html>

【问题讨论】:

    标签: jquery position jquery-animate offset


    【解决方案1】:

    嗯,我猜你已经在那里了。但是...代码取决于您的实际布局。

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
        <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
            <style type="text/css">
                body, td, input, button{
                    font-family: Tahoma,Verdana,Helvetica,Arial,sans-serif !important;
                    font-size:11px;
                }
                label{
                    width:100px;
                    display: inline-blocK;
                }
                #div1{
                    width:100px;
                    height:50px;
                    background-color:red;
                    position:absolute;
                    top:100px;
                    left:30px;
                }
                #div2{
                    width:80px;
                    height:30px;
                    background-color:green;
                    position:absolute;
                    top:200px;
                    left:100px;
                }
    
            </style>
            <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
            <script type="text/javascript">
                $(function(){
                    $("#moveitButton").click(function() {
                        doit();
                    })
    
                });
    
                function doit() {
                    var div2Pos = $("#div2").position();
                    var div2Width = $("#div2").css("width");
                    var div2Height = $("#div2").css("height");
                    $("#div1").animate({left:div2Pos.left, width:div2Width, height:div2Height}, 1000);          
                }
            </script>
        </head>
        <body>
    
            <div id="div1">div #1</div>
            <div id="div2">div #2</div>
            <button id="moveitButton">move it!</button>
        </body>
    </html>
    

    (至少这在我的浏览器中有效)

    韩国、扎拉

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-26
      • 2019-05-19
      • 2014-03-15
      • 2016-02-04
      • 1970-01-01
      • 2015-01-01
      • 2019-02-25
      • 1970-01-01
      相关资源
      最近更新 更多