我有一个一页的网站,上面有类似<a href="#block1">link1</a>
的链接。浏览器地址栏显示site.com/#block1
我希望浏览器给出一行类似于site.com/block1的内容,点击链接后,浏览器将打开滚动页面,找到所需的块。
这个jsfiddle很简单,但它不起作用http://jsfiddle.net/26LRA/2/
不应该有魔术,没有php,cms,sql和不同的插件。仅限纯javascript/jquery
添加:我给你这个网站http://www.ascensionlatorre.com正如我所希望的,但我无法理解他们的代码
你的意思是你只想明显地更改url:
$("#name0 a").click(function(e) {
e.preventDefault();
var id = $(this).attr('href').substring(1);
$('html,body').animate({scrollTop: $('#'+id).offset().top}, 'fast');
window.history.pushState("", "", '/' + id);
});
示例
要使链接真正工作,您需要mod_rewrite
,制作一个.htaccess
并添加:
RewriteRule ^portfolio$ /index.php/#$1 [QSA,NE]
读取URL
var path = document.location.pathname;
path = path.substring(path.lastIndexOf('/'), 1);
if(path){
$('html,body').animate({scrollTop: $('#'+path).offset().top}, 'fast');
}
我认为正确的方法是在.htaccess.