【问题标题】:Animate window in and out jQuery动画窗口进出jQuery
【发布时间】:2013-11-08 04:30:21
【问题描述】:

我在 jQuery 中创建了一个切换开关。如果您单击一个标记,侧边栏会在屏幕内滑动,当您单击同一个标记时,它会向后滑动。但是,我的屏幕上有多个标记,如果您单击另一个标记,动画会继续向内滑动,因此侧边栏会变大。我想要的是,当您单击任何标记时,侧边栏的大小保持不变,但我无法通过我自己的尝试来实现。代码:

   google.maps.event.addListener(marker, 'click', function() {
                infowindow.open(map,marker);

                if(windowOpen)
                {

                    sidebar.animate({ 
                        width: "-=300px" 
                    }, 500, function()
                    {
                        console.log('complete');
                    });


                 windowOpen = false;

                }
                else
                {
                    sidebar.animate({ 
                        width: "+=300px" 
                    }, 500, function()
                    {



                    });

                    windowOpen = true;
                }



              });

谁能指出我正确的方向?

非常感谢!

【问题讨论】:

  • 这样您单击标记 A,侧边栏就会打开。您希望这样,如果您单击标记 B,侧边栏仍以相同大小保持打开状态。但是,如果您随后再次单击标记 A 或标记 B,侧边栏会关闭吗?
  • 几乎!如果我单击标记 A,它确实会打开和关闭。如果我单击标记 A,它会打开,但如果我单击标记 B,它会再次打开。我确实希望它具有相同的大小。

标签: javascript jquery google-maps-api-3


【解决方案1】:

看起来您还没有在 eventHandler 之外定义 windowOpen。因此,在每次单击时 windowOpen 都是未定义的,导致您的 else 代码被执行。试试这个:

var windowOpen = false;

google.maps.event.addListener(marker, 'click', function() {
  // your code
}

【讨论】:

  • 它正在工作,我确实声明了 windowOpen var,(对不起,我没有复制它)。单击其中一个标记时,动画正在工作。当它处于活动状态时,它会返回动画,但仅适用于单击的标记。如果我单击另一个标记,则动画会再次以相反的方式进行动画处理,因此侧边栏的宽度会再次增加,但即使您单击其他标记,我也想将其动画化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-05
  • 1970-01-01
相关资源
最近更新 更多