У меня есть значения прокрутки X
и Y
в процентах (значения в диапазоне от 0 до 100), и я хочу прокрутить страницу до этого места. Я получаю процентные значения от вызова API.
function scrollPageByGivenPercentage(percentageX, percentageY) {
// ... scroll by percentage ...
//window.scrollTo(percentageX, percentageY);
}
Вышеуказанная функция прокручивается в пикселях, и она не выполняет свою работу. Я попытался использовать это:
function scrollPageByGivenPercentage(percentageX, percentageY) {
var yScrollInPx = document.body.documentElement.clientHeight * percentageY;
window.scrollTo(0, yScrollInPx);
}
Я думаю, clientHeight
- неправильное свойство. Пробовал также offsetHeight
.
Я вычисляю проценты из этого вопроса :
У меня есть эта функция для получения текущего значения прокрутки в процентах:
function getScrollPercent() {
var h = document.documentElement,
b = document.body,
st = 'scrollTop',
sh = 'scrollHeight';
return (h[st] || b[st]) / ((h[sh] || b[sh]) - h.clientHeight) * 100;
}