slideToggle高度是“跳跃”
我的jQuery slideToggle()
实验
任何人都可以告诉我为什么我打开它时我的盒子“跳”? 上半场他们滑了,其余的他们“跳”?
谢谢,约翰内斯
这是一个简单的修复。 将此CSS规则添加到样式表中( 在Firebug中测试可以工作,根据我以前对此问题的经验,这是修复 ):
ol.message_list { position: relative }
这是一个CSS bug,而不是jQuery bug本身。
对我有帮助的是
overflow: hidden
那个切换……
您案件中最快的解决方案:
.message_container { width: 361px; }
我不确定为什么,但是当包含
导致问题时,不给容器一个固定的宽度,给它一个,跳跃就会消失。
css padding和jquery slideToggle不能很好地协同工作。 尝试填充填充。
我在很多场合都发现了这个问题,我用slideToggle
而不是边距/填充来设置高度。
所以,这样的事情可能会解决它:
$("#thediv").slideToggle().animate({"margin-bottom": "toggle"});
如果设置, min-height
属性也可以触发这样的故障。 在这种情况下,您需要重置它:
.toggle-container { position: relative; min-height: 0; }
无论如何,我认为最容易使用的解决方案是将自定义函数添加到jQuery,并使用动画填充/ margin-top / bottom。
//this function is to avoid slideToggle jQuery jump bug. $.fn.slideShow = function(time,easing) { return $(this).animate({height:'show','margin-top':'show','margin-bottom':'show','padding-top':'show','padding-bottom':'show',opacity:1},time,easing); } $.fn.slideHide = function(time,easing) {return $(this).animate({height:'hide','margin-top':'hide','margin-bottom':'hide','padding-top':'hide','padding-bottom':'hide',opacity:0},time,easing); }
和用例:
$(this).slideShow(320,'easeOutQuart'); $(this).slideHide(320,'easeOutQuart');
我的示例动画不透明度切换tu,您可以根据需要进行修改。
我发现最简单的修复方法通常是从滑动元素中删除填充,并向滑动元素内的元素添加填充。
在此示例中,具有data-role="content"
属性的div是滑动的div,并且填充应用于tab-example__content
...
为了修复’生涩’的滑动,我在滑动元素中添加了一个新的div,并将类/ padding移动到那个,就像这样:
...
它现在很好,很顺利
我发现了另一件影响它的事情。 从该元素的CSS中删除min-height
为我修复了它。
如果切换的框默认没有高度,则需要添加它,对于自动高度添加:
.toggle-container { height: auto; }
我发现在切换容器上设置宽度解决了我的问题
.toggle-container { width: 100%; } }
我看过slideToggle依赖于起始宽度和高度来正常运行,因此根据您的页面,您可能需要设置宽度或高度以获得您期望的行为。
在我过去的情况下,我遇到了同样的问题,问题是我有transition: all 350ms;
我的CSS中的声明与.slideToggle
冲突。 删除它为我修复它,所以在CSS中查找转换。