[英]How to remove #anchor (location.hash) from url when linking from other page within website?
我必须转换一个滚动的单一登录页面主题才能与 WordPress 一起使用。 它从 URL 中删除了#anchor ids
。
一切正常,直到客户端要求添加另一个页面但保持相同的标题导航。
现在我从内页(mysite.com/page)
链接到href="/#anchor"
。 这基本上有效,但有两个错误我无法解决。
首先,它不再从 URL 中删除#anchor
- 单击的任何锚点都会无限期地保留在 URL 中。 其次,对齐方式略有偏差(从主页导航时没问题)。
history.pushState
方法可以从 URL 中删除 #,但这也有问题 - 它在浏览历史记录中创建了一个额外的步骤,并且可能在足够多的浏览器上不起作用。
先生,有没有办法使用javascript (or php)
强制href="/#anchor"
首先转到 index.php(顶部),然后很好地滚动到锚点?
但是从主页导航时注意不要重新加载页面。 如果这是可能的,它也可能会解决对齐问题。
我开始相信没有什么是不可能的 -所以不要让我失望! :-)
因此,如果您使用不会在历史记录中添加额外步骤的 replaceState。 正如你所说,虽然浏览器支持有限,特别是 IE http://caniuse.com/#search=pushstate
为什么不希望哈希值出现在 URL 中?
尝试这个。 小提琴演示
<a href="#anchorName">Goto</a>
<a name="anchorName">Come to me</a>
(function($) {
$(document).ready(function() {
var url=document.URL.split("#");
var ancher=url[1];
$('html, body').animate({
'scrollTop': $('#'+ancher).offset().top
}, 5000);
});
})(jQuery);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.