Javascript 更改url中的id时页面抖动?
我有一个页面,每个页面有10个块,每个块占窗口的高度。我试图通过在像page.com#one一样向下滚动页面时向url添加块id来更改url。url更新得很好,但在尝试使用id时遇到了问题。如何在没有问题的情况下平稳地转换更改Javascript 更改url中的id时页面抖动?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个页面,每个页面有10个块,每个块占窗口的高度。我试图通过在像page.com#one一样向下滚动页面时向url添加块id来更改url。url更新得很好,但在尝试使用id时遇到了问题。如何在没有问题的情况下平稳地转换更改 <div class="block" id="one"> <p>....</p> </div> <div class="block" id="two"> &
<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');
}
});
$('.block')。每个(函数(){
如果(
$(此).offset().topwindow.pageYOffset+10
){
window.location.hash=$(this.attr('id');
}
});
这是因为通过设置window.location.hash
的值,您告诉浏览器实际跳转到页面中的该元素
您尝试模拟的页面很可能不使用真实ID,而是使用占位符ID,例如:
并且在页面加载时有一个脚本,其作用如下:
$(function() {
if(window.location.hash.substring(0, 7) === "#block-") {
// Scroll to block whatever...
}
});
为什么要对每个
块
执行此操作,而不是直接用id
指向所需的块
?我还试图通过在向下滚动页面的url中添加块id来更改url。