正在根据滚动到的部分设置url哈希
Setting url hash based on section scrolled to?
我有一个导航和部分,如下所示。。
<ul id="nav">
<li>section 1</li>
<li>section 2</li>
</ul>
<section id="section-1">
<p>text</p>
</section>
<section id="section-2">
<p>text</p>
</section>
有没有一种方法可以用jquery插件完成以下操作?
- 在向下滚动页面时,视图中(略有偏移)部分的url哈希添加到url中,即:在第1部分的视图中滚动到下面的30px:http://www.site.com/#section-1
- 当它到达该部分时,出于ux目的,它还应该将该部分的
<li>
更改为活动 - 最后,
<li>
应该可以在导航中点击,这样用户就可以通过平滑滚动进入该部分
希望有人以前这样做过,如果有的话,有一个例子,或者可以给我指明正确的方向。感谢
更新:找到http://razorfish.github.io/Parallax-JS/但它与其他JS相比太重了。在没有其他部分的情况下,我需要哪些部分才能实现这一点?Jsfddle有人吗?
http://fiddle.jshell.net/dzqpG/5/show/light/
代码
$(window).on('scroll', function(){
var scroll = $(this).scrollTop();
if(scroll > 300){
$('#section2').css('background','black');
history.pushState(null, null, '#section2');
}
});
$('#nav').on('click','a', function(event){
event.preventDefault();
$('html, body').animate({
scrollTop: $("#section2").offset().top
}, 2000);
})
将其用作参考点。pushState仅支持IE10以上版本。
有一个名为One Page Nav的jQuery插件,它只需少量配置即可满足您的所有需求。
只需确保在设置时为哈希更改设置changeHash: true
即可。
相关文章:
- 如何使用 Ruby 在 Javascript (js.erb) 中设置 url
- 这个关键字位于$.ajax()中,用于调用其他函数来设置url
- 设置 URL 以在 Django 模板中加载 iframe
- jQuery ticker - 如何为 #ticker 标题设置 URL
- 在Aurelia中设置URL而不刷新整个模板
- 如何使用jquery ajax在离线网站中设置url
- 根据复选框检查并设置url变量
- 在窗口中预先设置URL.打开函数jQuery
- 在.htaccess中设置URL重写规则后javascript文件和css文件的路径
- 使用javascript设置URL中隐藏参数的值
- 在JavaScript中为jsoup设置url
- 正在设置URL中的请求标头
- 正在根据滚动到的部分设置url哈希
- JavaScript 根据索引设置 URL
- IE不能设置url,而Chrome可以
- 如何使用Vue- router在Vue中设置URL查询参数
- jqGrid设置URL为自定义按钮
- 模型.保存设置url并在成功时进行回调
- PHP全局设置URL并在每个页面中调用它
- 如何通过PHP设置URL