在this fiddle中,您会注意到当您单击其中一个按钮时,容器将缓慢向上滑动。当它到达顶部时,你会发现它并没有完全滑动。如果你看着检查员,li
的底部填充不会像你期望的那样在slideUp()
操作中缩小。jQuery slideUp()不缩小填充底部值
任何想法为什么?
注意:向上滑动很慢以更好地显示问题。
注2:当我将jQuery库更改为1.7.2时,它实际上可以正常工作。有趣。
FWIW:我提交了ticket使用jQuery
在this fiddle中,您会注意到当您单击其中一个按钮时,容器将缓慢向上滑动。当它到达顶部时,你会发现它并没有完全滑动。如果你看着检查员,li
的底部填充不会像你期望的那样在slideUp()
操作中缩小。jQuery slideUp()不缩小填充底部值
任何想法为什么?
注意:向上滑动很慢以更好地显示问题。
注2:当我将jQuery库更改为1.7.2时,它实际上可以正常工作。有趣。
FWIW:我提交了ticket使用jQuery
编辑:
这个回归固定在jQuery的1.8.1 - fiddle。
这fiddle表明paddingBottom
简单地在slideUp
的动画的最后减去。细微的paddingBottom
减法在您的小提琴上不可见,因为当您在回拨内部拨打slideDown
时,paddingBottom
会立即加回(对比减去它的方式)。 Fiddle
如果您不希望等到修复程序被释放并且不想降级到1.7.2,临时解决方法使其表现为1.7.2,则会将CSS属性图传递给.animate
:
function next() {
var q = $(this).parents('li');
q.data('originalDimensions', {
borderTopWidth: q.css('borderTopWidth'),
paddingTop: q.css('paddingTop'),
height: q.css('height'),
paddingBottom: q.css('paddingBottom'),
borderBottomWidth: q.css('borderBottomWidth')
});
q.animate({ borderTopWidth:0, paddingTop:0, height:0, paddingBottom:0, borderBottomWidth:0 }, 5000, function(){
$(this).animate($(this).data('originalDimensions'), 5000);
});
}
让我们投了你的票,并希望它被固定在1.8.1版本。
编辑:更新了变通方法来存储元素的.data()
的originalDimensions
,这样就可以在以后的时间,并在不同的范围内使用。要一次动画多个元素,使用.each
迭代设置.data()
:
q.each(function() {
var $this = $(this);
$this.data('originalDimensions', {
borderTopWidth: $this.css('borderTopWidth'),
//...
});
});
q.animate({ borderTopWidth:0, /*...*/ }, 5000, function() {
$(this).animate($(this).data('originalDimensions'), 5000);
});
好像在1.8又回归。 –