У меня есть этот javascript, который привносит новый контент и заменяет старый, но переход, в котором он делает это, уродлив, он чувствует себя как обычная ссылка.
$(document).ready(function() {
// initial
$('#content').load('content/index.html');
// handle menu clicks
$('div#nav ul li a').click(function() {
var page = $(this).attr('href');
$('#content').load('content/' + page + '.html');
return false;
});
});
Как добавить переход, чтобы сделать мой сайт более жидким?
Я пробовал.fadeIn, но это, похоже, не работает
попробуй это
$('#content').fadeOut('fast',function(){
var $this = $(this);
$this.load('content/' + page + '.html',function(){
$this.fadeIn('fast');
});
});
Для этого я использовал бы все обратные вызовы методов.fadeOut() и .load().
Примечание. Использование полной функции на.fadeOut() не требуется, но это гарантирует, что вы не начнете загружать контент, пока элемент не будет полностью удален с сайта. Это будет продолжаться от странного мерцания, когда вызов AJAX вернется очень быстро
var $content;
$(document).ready(function() {
$content = $('#content');
// initial
$content.fadeOut("slow", function() {
$content.load('content/index.html', function() {
$content.fadeIn("slow");
});
})
// handle menu clicks
$('div#nav ul li a').click(function() {
var page = $(this).attr('href');
$content.fadeOut("slow", function() {
$content.load('content/' + page + '.html', function() {
$content.fadeIn("slow");
});
})
return false;
});
});
Теперь немного больше, чтобы упростить работу с вашим кодом.
var changeContent = function(page) {
var $content = $(content);
$content.fadeOut("slow", function() {
$content.load('content/' + page + '.html', function() {
$content.fadeIn("slow");
});
};
$(document).ready(function() {
changeContent("index");
// handle menu clicks
$('div#nav ul li a').click(function() {
changeContent($(this).attr('href'));
return false;
});
});