我必须转换滚动的单一着陆页主题才能使用WordPress。它非常棒地删除了URL中的#anchor ids
。
在客户端要求添加其他页面但保持相同的标题导航之前,一切正常。
现在我从内页(mysite.com/page)
和href="/#anchor"
进行链接。这基本上有效,但有两个错误我无法解决。
首先,它不再从URL中删除#anchor
- 无论点击哪个锚点都无限期地保留在URL中。其次,对齐稍微偏离(从主页导航时很好)。
history.pushState
方法类似于从URL中删除#,但这也是错误的 - 它在浏览历史记录中创建了一个额外的步骤,并且可能无法在足够的浏览器上运行。
请原谅,有没有办法,使用javascript (or php)
强制href="/#anchor"
首先转到index.php(顶部),然后很好地滚动到锚点?
但小心不要在从主页导航时重新加载页面。如果可以的话,它也可能会解决对齐问题。
我开始相信没有什么是不可能的 - 所以不要让我失望! : - )
答案 0 :(得分:0)
因此,如果您使用不在历史记录中添加额外步骤的replaceState。正如您所说,虽然浏览器支持有限,特别是IE http://caniuse.com/#search=pushstate
为什么你不希望哈希在URL中?
答案 1 :(得分:0)
试试这个。在Fiddle
中进行演示<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);