【发布时间】:2015-10-30 13:18:07
【问题描述】:
我有一个奇怪的问题,无论我尝试什么都找不到解决方案。 我有一个简单的菜单,可以切换几个 div(向上/向下滑动),如下所示:
<div class="navigation">
<ul class="left">
<li><a href="#lorem1" class="menu">lorem1</a></li>
<li><a href="#lorem2" class="menu">lorem2</a></li>
<li><a href="#lorem3" class="menu">lorem3</a></li>
</ul>
</div>
还有一些正在切换的div。很简单,但是代码很多,所以我不会在这里粘贴。
使其工作的脚本是:
$('.navigation a').click(function() {
var $requested = $(this.getAttribute('href'));
$('.top-drawer').not($requested).slideUp('slow');
$requested.slideToggle('slow')
});
一旦用户点击链接,div 会向下滑动超过应有的高度,闪烁,然后变为实际高度(应该是高度)。
这是Fiddle。请确保“结果”窗口的宽度至少为 1000+ 像素,否则将无法正常工作(不会显示错误)。
【问题讨论】:
-
我不知道答案,但我有一个观察结果:如果您将“慢”替换为 5000(5 秒)之类的数字,您可以更好地了解正在发生的事情。在我看来,当两个移动的东西彼此相邻时,jQuery 并没有处理这种情况。
-
这是一个常见问题,并且(90% 的时间)归结为某些 CSS 属性。检查这些问题之类的快速建议:stackoverflow.com/questions/14420315/…
-
你的小提琴对我来说似乎运行良好......我没有看到任何闪烁。
-
我删除了你所有的
displaycss 样式,现在它工作正常,可能发生的是你正在使用浮动和显示块,并且当高度发生变化时,元素会四处移动以适应这会导致向下滑动/向上滑动的 div 的高度随机变化。你需要处理你的 CSS 来解决这个问题:(
标签: javascript jquery