2014-10-05 52 views
0

我有一个DOM内的按钮,单击时,使用jQuery的slideToggle方法显示隐藏的div。由于iFrame jQuery slideToggle弹跳

隐藏的div使用AJAX和jQuery定期更新以显示Tweet。 Twitter提供的代码将Tweet作为blockquote嵌入,然后将脚本嵌入到iFrame中。这一切都发生在div被隐藏时。所以,当slideToggle方法被调用时,它不知道div有多高,因此它会超调创建一个丑陋的反弹效果。

有没有什么办法摆脱这个?请记住,div的高度将根据Tweet而改变,因此高度不能被硬编码。

回答

1

那么你不需要知道隐藏div的高度,你可以做一个的slideToggle,它会打开DIV在它的全高度:)

http://jsfiddle.net/3fyamqLk/

$('.toggle').on('click', function (e) { 

    $('#hidden').stop().slideToggle(); 

    return false; 
}); 

也许你还有其他事情正在进行,这使得弹跳,我看不到一些代码:)

+0

正确,但由于iFrame被插入,而其隐藏,有一个反弹发生。 – 2014-10-05 21:50:05

+0

您可以尝试在slideToggle之前添加停止,以停止在该元素中发生的所有事件:)尝试使用编辑答案中的代码。如果你可以在小提琴中重新创建弹跳,那将会容易得多:) – 2014-10-05 21:59:29