EDIT:
hồi quy này đã được cố định trong jQuery 1.8.1 - fiddle.
Như bạn đã nhận thấy, đây là lỗi khác trong v1.8.0.
Điều này fiddle chứng tỏ rằng paddingBottom
chỉ đơn giản là bị trừ ở phần cuối của hoạt ảnh của slideUp
. Phép trừ tinh tế paddingBottom
không hiển thị trên fiddle của bạn bởi vì khi bạn gọi slideDown
bên trong cuộc gọi lại, số paddingBottom
được thêm lại ngay lập tức (theo phương thức so sánh với cách trừ đi). Fiddle
nếu bạn không muốn đợi cho đến khi bản sửa lỗi được phát hành và không muốn hạ xuống 1.7.2, giải pháp tạm thời để làm cho nó hoạt động như 1.7.2 sẽ là chuyển bản đồ thuộc tính CSS tới .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);
});
}
Fiddle
Hãy bỏ phiếu lên vé của bạn và hy vọng nó được cố định trong phiên bản 1.8.1.
chỉnh sửa: Cập nhật các workaround để lưu trữ các originalDimensions
trong các yếu tố của .data()
, cách này nó có thể được sử dụng tại một thời gian sau đó và trong một phạm vi khác nhau. Animate nhiều yếu tố cùng một lúc, sử dụng .each
lặp để thiết lập các .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);
});
Fiddle
Có vẻ như chưa một hồi quy trên 1,8. –