Как указать вертикальное смещение в пути URL - PullRequest
3 голосов
/ 18 августа 2010

Могу ли я указать смещение по y в пути URL при использовании закладок?

Допустим, у меня есть этот путь: mywebsite.com/mypage#bookmark

Я бы хотел центрировать раздел закладок всередина страницы, а не вверху.

Мне было интересно, могу ли я указать что-то вроде ..mypage#bookmark&y-offset=100

, может быть, я могу использовать javascript, чтобы получить это значение .. спасибо

1 Ответ

1 голос
/ 18 августа 2010

Нет собственного способа сделать это, но вы можете определить разделитель между идентификатором и смещением, например, /, а затем разобрать его.

Например:

/ путь / к / страница # Идентификатор / 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...