Đây là mã của tôi:jquery .hide() fadeIn()
$('.items').html(response).hide().fadeIn();
Vấn đề là khi điều này được nạp trang "nhảy" lên do rằng .hide() .. là có một số cách khác để làm điều này?
Đây là mã của tôi:jquery .hide() fadeIn()
$('.items').html(response).hide().fadeIn();
Vấn đề là khi điều này được nạp trang "nhảy" lên do rằng .hide() .. là có một số cách khác để làm điều này?
Bạn có thể sử dụng opacity thay vì nếu bạn muốn giữ lại kích thước của phần tử còn nguyên vẹn:
$('.items').html(response).css({'opacity':0}).animate({'opacity':1});
Hide sử dụng CSS và sau đó mờ dần nó trong khi có yêu cầu:
css:
.items {
display:none;
}
Javascript
$('.items').html(response).fadeIn();
Vấn đề là đây là một phản ứng ajax .. có các mục hiển thị trên trang tải rằng tôi chỉ lọc – Mackelito
bạn có một vài tùy chọn khác - thay thế HTML và đánh dấu div để hiển thị thay đổi của nó ... gắn thêm div và trượt div trước đó lên và sau đó trượt div mới lên .... hoặc fadeOut()/fadeIn()? – ManseUK
Nếu bạn muốn hiển thị một transtion suôn sẻ giữa nội dung hiện có và mới, hãy thử như sau:
$(function(){
$('.items').fadeOut(function(){
$(this).html(response).fadeIn();
})
});
Đây là một giải pháp sạch hơn vì nó tránh được một hiệu ứng nhấp nháy của nguyên tố này được bổ sung đầu tiên, sau đó nhanh chóng có opacity của nó thiết lập để 0.
Bằng cách này, elem được thêm vào đã có một độ mờ đục của 0.
var elem = $(response).css({'opacity': 0});
$('.items').html(elem);
elem.animate({'opacity': 1});
Tại sao bạn đã có hide() hai lần? Một khi nó được ẩn nó nên ở lại ẩn cho đến khi bạn hiển thị() nó một lần nữa – danwellman
Oh .. xấu của tôi .. chỉ là một lỗi đánh máy .. sẽ chỉnh sửa câu hỏi! – Mackelito
Các phần tử ".items" có thể nhìn thấy khi tải trang (và sau đó, có lẽ, được cập nhật qua cuộc gọi ajax)? Ý tưởng về ẩn và mờ dần có thu hút sự chú ý đến bit đã được cập nhật không? – nnnnnn