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