我有一个网站,其中的HTML代码我有这样的导航菜单:
<a href="#section1"> blabla </ a>
在这个特殊的部分:
<p id="section1"> blabla </ p>
因为当我按下URL中的"blabla"时,它不是www.prova.it/ # section1
,而是www.prova.it
?
是的,它有效
当你点击带有某个元素id的超链接时,浏览器会将你移动(滚动)到该元素!
因此,此链接<a href="#section1">blabla</a>
将始终将浏览器移动到元素的位置!
供您参考
供您参考:一个HTML DOM只能有一个具有指定ID的元素,因此在您的文档中,您可以只向一个元素添加#section1
,其他元素必须有单独的ID!
哪里出了问题;可能是什么
你的元素是完美的!超链接将把客户端(用户)带到元素的位置。你可能遇到的唯一问题是
-
ID错误或点击的元素错误!
-
元素和超链接在同一页面中,没有滚动空间
当文档被单独分页时,通常会出现这种类型的错误,浏览器无法再滚动文档!因此,您将无法在滚动中看到任何更改!
这是你的密码
这是您的代码:http://jsfiddle.net/afzaal_ahmad_zeeshan/5e7TF/
我刚刚为p
添加了一些空白作为
#section1 {
margin: 500px;
}
当我点击链接时,浏览器就关闭了!
是什么原因导致URL没有更改
现在,你的页面中的错误,为什么它没有更改URL,是因为你正在使用
return false;
或者这个:
event.preventDefault();
由此URL保持不变!
试试这个补救
所以,试试这个:
$('a[href="#section1"]'.click(function () { // jQuery
history.pushState('', 'Page Name', '#section1');
}
history.pushState
示例
你可以在这里测试这个:http://html5.gingerhost.com尝试加载一些新页面。