我的页面有10个块,每个块占用窗口的高度。我正在尝试通过向页面滚动向网址添加块ID来更改网址,如page.com#one。网址更新很好,但试图去id的混蛋。如何在没有混蛋的情况下顺利转换更改?
<div class="block" id="one">
<p>....</p>
</div>
<div class="block" id="two">
<p>....</p>
</div>
Jquery的
$('.block').each(function(){
if (
$(this).offset().top < window.pageYOffset + 10
&& $(this).offset().top + $(this).height() > window.pageYOffset + 10
){
window.location.hash = $(this).attr('id');
}
});
答案 0 :(得分:0)
这是因为通过设置window.location.hash
的值,您告诉浏览器物理跳转到页面中的该元素。
您尝试模拟的网页很可能不会使用真正的 ID,而是使用占位符,例如:
并且在页面加载时有一个脚本,它可以执行以下操作:
$(function() {
if(window.location.hash.substring(0, 7) === "#block-") {
// Scroll to block whatever...
}
});