Jquery将div动画到与另一个div相同的位置

发布于 2024-10-06 02:56:30 字数 537 浏览 4 评论 0原文

如何将一个 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>

How can I animate a div to the same position as another div.

I want to animate the left position of #div1 to the same left position of #div2

When I use .position().left OR .offset().left to get the left position of #div2 then try to animate #div1 to the same position, the animation runs but it moves #div1 to the same position as #div 2 PLUS the original position of #div1 (i.e. they are not aligned).

Here's a simplified version of the script. Hope you can help :)

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

感性不性感 2024-10-13 02:56:30

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

<!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>

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

kr,zara

Well, I guess you were already there. However... the code is depending on your actual layout.

<!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>

(At least this works in my browser)

kr, zara

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文