我目前正在建立一个新的投资组合网站。我目前正在使用 Isotope 来布局我的投资组合项目,同时使用 AJAX 加载详细信息。我正在利用 CCS3 过渡为“细节”内容添加一些不错的效果/过渡。单击投资组合项会淡出主投资组合网格,然后将其替换为工作详细信息页面。按照我在网上找到的一些东西,这是我目前正在工作的东西。
$(document).ready(function() {
var hash = window.location.hash.substr(1);
var href = $('.item-wrapper a').each(function(){
var href = $(this).attr('href');
if(hash==href.substr(0,href.length-5)){
var toLoad = hash+'.html .work-detail';
$('.site-container').load(toLoad)
}
});
$('.item-wrapper a').click(function(){
var toLoad = $(this).attr('href')+' .work-detail';
$('.home').addClass('homeFade');
setTimeout(loadContent, 900);
$('#load').remove();
$('.site-container').append('<span id="load">LOADING...</span>');
$('#load').fadeIn('fast');
window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5);
function loadContent() {
$('.site-container').load(toLoad,'',showNewContent())
}
function showNewContent() {
$('.work-detail').fadeIn('normal',hideLoader());
}
function hideLoader() {
$('#load').fadeOut('fast');
}
setTimeout(workFadeUp, 1300);
function workFadeUp() {
$('.work-detail').addClass('work-detail-show');
}
return false;
});
我最初遇到了一些问题,$('.work-detail').addClass('work-detail-show');
因为我试图将它作为回调函数添加到,showNewContent()
但它似乎表现得好像.work-detail
还不可用,所以经过大量的试验/错误后,我在最后延迟了它.
基本上它的表现是我想要的,但现在是在这一点上,在我头上的部分。我如何才能将其编程到用户按下浏览器后退按钮的位置,这个 AJAX 调用以某种方式被反转......淡出工作细节并淡出投资组合网格......在更新地址栏的同时?
我已经查看了 History.js,但在阅读自述文件时,我有点像头灯中的鹿。
我绝对不是 jQuery/AJAX 大师,但我愿意挖掘……感觉就像我撞到了一块石头。
这是我的开发网站http://bit.ly/U38SFB的链接
此外,考虑采用非 AJAX 路线,因为 AJAX 并没有真正增强可用性/功能,只是提供了“酷加载”因素,我确实创建了一个假 AJAX 版本,它运行相同的 CSS 转换并实际链接到页面。
$(window)
.load(function () {
$('.work-detail')
.addClass('work-detail-show');
});
$("a.fakeajax")
.click(function () {
$('.home')
.addClass('homeFade');
var href = $(this)
.attr('href');
// Delay setting the location for one second
setTimeout(function () {
window.location = href
}, 700);
return false;
});
但仍然有同样的问题,当按下浏览器后退按钮时,添加的用于淡出投资组合网格的类仍然存在。