我正在重新设计my personal / development website,并尝试尽可能使用户友好。
我想用AJAX加载新页面并将其滑入,这就是目前正在发生的事情。 所有当前浏览器中的所有都可以(IE除外,但我将来会对此进行处理)。
但是,在第一次(并且只有第一次)页面更改的导航菜单中有一个奇怪的间距跳转。页面更改一次后,导航间距保持不变。
单击链接时,新页面的导航部分将设置为替换当前导航,因为每个链接都有一个由服务器后端计算的数据偏移属性,以便javascript知道在点击元素时滑动元素的方向和距离。
我目前正在这样做,它是 [内容宽度] 或 - [内容宽度] 。
然而,菜单从不的结构发生了变化,样式表完全是静态的。我在Firebug中检查了所有这些元素,并且页面加载没有任何变化。
我上面链接了the site, http://next.randolphwebdevelopment.com,但我会在这里复制一些相关的Javascript,以便了解正在发生的事情。
将整个页面拉下来,链接将重定向到(除非指定,所有未来的代码块也都在此回调中):
$.get( loc, function( data ){
//delete the doctype declaration
data = data.split("\n").slice(1).join("\n");
next_page = $(data.replace(/(\r\n|\n|\r)/gm,"").replace(/>\s*</gm,'><'));
使用目标页面中的新导航替换导航(所有真正改变的是每个链接上的数据偏移属性):
//insert the new navigation
$('#header-content nav').html(next_page.find('#header-content nav').html());
$('#header-content nav a').click( navigation_clickHandler );
真的是这样。有一堆代码可以插入新内容并将其滑入,以及更改页面标题,设置历史状态等,但这是唯一触及导航菜单的代码,并且没有任何代码可以触及任何样式表
我愿意接受任何可以解决问题和/或改进代码设计的建议。
答案 0 :(得分:0)
首先从没有php的服务器获取nav
。我打赌你用手动编写这个html等等。
任何点击后js重新创建nav
,但现在没有空文本节点。只需<a>link1</a><a>link2</a>
。
添加空格或从源html中删除它们。