如何在url路径中指定垂直偏移量

时间:2010-08-18 08:17:53

标签: javascript html css

使用书签时,我可以在网址路径中指定y偏移量吗?

假设我有这条道路:mywebsite.com/mypage#bookmark

我想将书签部分置于页面中间而不是顶部。

我想知道我是否可以指定类似..mypage#bookmark&y-offset=100

的内容

也许我可以使用javascript来获取该值.. 感谢

1 个答案:

答案 0 :(得分:1)

没有本地方法可以做到这一点,但你可以做的是在ID和偏移之间定义一个分隔符,例如/,然后解析出来。

例如:

/路径/到/页#标识/ 200

然后您可以解析值并手动向前移动它。请注意,如果您已经在页面上并转移到页面上的锚点,我不知道如何将其作为事件触发(请填写我的任何人?)

function moveToHash() {
    function offset(node) {
        var x = 0, y = 0; do {
            x += node.offsetLeft;
            y += node.offsetTop;
        } while (node = node.offsetParent);
        return {x: x, y: y};
    }
    var id = location.search.match(/([^\/]+)/)[1];
    var offset = location.search.match(/\/(.+)/)[1] * 1;
    var nodeOffset = offset(document.getElementById(id));
    window.scrollTo(nodeOffset.x, nodeOffset.y);
    window.scrollBy(0, offset);
}