在打开时添加一个滑动切换功能

时间:2013-09-13 17:54:39

标签: javascript jquery slidetoggle

嗨,我只是制作了一个显示谷歌地图的div,你设置了坐标等等,无论如何第一个问题是动画高度时,里面的地图有大小这个问题:

how to deal with google map inside of a hidden div (Updated picture)

我修复它就像在我的slideToggle中调用initialize();的第一个答案一样,修复了大小问题。问题是initialize();与slideToggle占用相同的时间,所以我失去了高度动画,它只是消失了,

在slidetoggle打开div时,无论如何都要跳转initialize();

<script>
$('.dropdownmap').click(function(){
    $('#mapDisplayWrap').slideToggle();
    initialize();
})
</script> 

3 个答案:

答案 0 :(得分:4)

是的,slideToggle在动画完成时接受函数回调。

  

.slideToggle([duration] [,complete])

试试这个:

$('.dropdownmap').click(function(){
    $('#mapDisplayWrap').slideToggle(400,function(){initialize();});

})

如果您希望它在切换打开时运行,请使用:

$('.dropdownmap').click(function () {
    $('#mapDisplayWrap').slideToggle(400, function () {
        if ($(this).is(":visible")) {
            initialize();
        }
    });
});

答案 1 :(得分:3)

  

无论如何都要跳到初始化();只是当slidetoggle打开div?

您将需要使用动画回调来检查元素是否可见(刚打开)并执行initialize(如果是)。

$('.dropdownmap').click(function(){
  $('#mapDisplayWrap').slideToggle(function(){
    if($(this).is(':visible'))
      initialize();
  });
});

答案 2 :(得分:1)

initialize添加为slideToggle回调:

$('#mapDisplayWrap').slideToggle(initialize);