2012-06-27 21 views
2
截断

我创建了错误的样机:Jquery的JScrollPane的不正确的重新初始化 - 底部用的slideToggle

Example

请忽略此页面的美感! 如果您向下滚动至“28钻石之家” 并点击“更多详细信息”,隐藏标签结构会显示更多关于场地的细节。

您会注意到此选项卡的底部已被切掉。

如果您然后尝试单击“更多详细信息”,然后点击“隐藏详细信息”到相关场所(“27.旧教区”),您会发现在此滚动窗格底部存在巨大的空白。

我会认为,api.reinitalise()会做的伎俩。 花了整整两天的时间尝试解决这个问题,但砖墙后一直打砖墙。

如果有人能够看看我告诉我我做错了什么,我将不胜感激。

谢谢!

+0

我有很多的经验,这个问题实际上。你可以把它放进一个js小提琴中,这样我就可以编辑了吗? – Fresheyeball

+0

你好,请参阅:http://jsfiddle.net/yEZEW这是我第一次使用jsfiddle - 由于某种原因,标签不会出现在这里 - 但无论如何,你会看到被切掉的部分(然后当其上方的场地扩大/缩小时,空白的吨数)。非常感谢! – jagku

回答

2

首先,您需要等待页面加载,因为您有图像。如果你不这样做,jscrollpane将无法访问div的真正原始高度。

然后使用jScrollPane中的auto-reinit选项。手动使用api的问题。重新初始化,就是你必须在动画发生后调用它,这可能不太可靠,并且可能表现为奇怪的行为。

http://jsfiddle.net/zqEph/

UPDATE

这是api.reinitalise() http://jsfiddle.net/zqEph/1/

+0

你好。谢谢。你知道是否有可能使用api.reinitialise() - 即手动而不是自动 - 这是因为它增加了我的网站明显的开销。 – jagku

+0

这是可能的。您只需确保在演示完成后使用它即可完成更多动画。 – Fresheyeball

+0

我已更新我的答案,以演示如何使用http://api.jquery.com/slideToggle/回调来等待动画完成。 – Fresheyeball

相关问题