嗨,我只是制作了一个显示谷歌地图的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>
答案 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);