поэтому у парней у меня есть список кучу вещей, которые пользователь может сделать, он загружает содержимое других страниц в div, что происходит, так это то, что текущее содержимое div начинает мигать (затем исчезает снова), затем появляется новое содержимое, которое я хочу сделать так, чтобы анимация fadein подождала, пока контент не будет готов к загрузке, а затем исчезнет в div, вот код jquery iam, который в настоящее время используется
$(document).ready(function(){
$("#History").click(function(){
$('#Display').fadeOut("fast").load("History.php").fadeIn("fast");
});
$("#Items").click(function(){
$('#Display').fadeOut("fast").load("SellerItems.php").fadeIn("fast");
});
});
Две вещи: 1, вам нужно скрыть div перед загрузкой, а 2 - исчезнуть, когда он будет готов.
Я бы анимировал прозрачность здесь вместо того, чтобы использовать fadeIn
для лучшего управления:
$("#History").click(function(){
$('#Display').css('opacity', 0).load("History.php", function() {
$(this).animate({ opacity: 1 }, 'fast');
});
});
Используйте параметр функции обратного вызова, который поставляется с fadeOut()
и load()
. Они будут вызываться, когда завершение затухания завершено, и процесс AJAX завершен, соответственно:
$("#History").click(function(){
$('#Display').fadeOut("fast", function(){
$(this).load("History.php", function(){
$(this).fadeIn("fast");
});
});
});
Функция load
jQuery выполняет обратный вызов, который выполняется, когда операция завершена, например:
$( "#result" ).load( "ajax/test.html", function() {
alert( "Load was performed." );
});
Итак, что вы должны сделать, это добавить обратные вызовы к вашему коду:
$("#History").click(function () {
$('#Display').load("History.php", function () {
$(this).fadeIn("fast");
});
});
Метод загрузки поддерживает обратные вызовы.
Например:
$('#Display').load("SellerItems.php", function() {
$(this).fadeIn("fast");
});