javascript - 手动滚动到 anchor 时更改 url?

标签 javascript jquery

默认情况下,如果我的网站中有 anchor ,则当我单击链接(即 www.mysite.com/#anchor)时,地址栏上的 URL 会发生更改

当我滚动到某个 anchor 时,是否可以立即更改地址栏中的 URL?或者有一个包含多个 anchor 的长文档,当我点击新的 anchor 时,地址栏上的 url 会发生变化?

最佳答案

尝试使用这个 jquery 插件:Scrollorama 。它具有大量很酷的功能,您可以使用 window.location.hash 来更新您的浏览器哈希。

或者,您可以添加“滚动”事件来检查何时到达 anchor 。

这是一个工作 fiddle 来说明该事件:http://jsfiddle.net/gugahoi/2ZjWP/8/ 示例:

$(function () {
    var currentHash = "#initial_hash"
    $(document).scroll(function () {
        $('.anchor_tags').each(function () {
            var top = window.pageYOffset;
            var distance = top - $(this).offset().top;
            var hash = $(this).attr('href');
            // 30 is an arbitrary padding choice, 
            // if you want a precise check then use distance===0
            if (distance < 30 && distance > -30 && currentHash != hash) {
                window.location.hash = (hash);
                currentHash = hash;
            }
        });
    });
});

关于javascript - 手动滚动到 anchor 时更改 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14660580/

相关文章:

javascript - 如何在 firebase 中根据用户更改数组?

jquery - 如何使用 css 更改一个选择框选项文本 (select2) 的字体大小?

javascript - 为什么我无法在模态中获取输入值(使用 Jquery 和 Javascript)

jquery - AppMobi后台问题

javascript - 从动态创建的链接运行 JavaScript

javascript - Angular 2路由参数更改,但组件不重新加载

javascript - 基于 Drop Downs 循环遍历嵌套 JSON 对象

javascript - 预测位于何处?

javascript - while 循环增量值在函数内不起作用

jquery - Jquery 可以知道我的 gif 动画何时结束吗?