2014-12-24 2 views
1

В JQuery я знаю, что вы можете перемещать начальное местоположение прокрутки. Это возможно с чистым javascript? Чтобы уточнить, когда пользователь загружает страницу, я просто хочу, чтобы горизонтальная полоса прокрутки начиналась прокручиваться до упора вправо, а не начиналась слева. Если есть проблемы с перекрестным браузером, я особенно обеспокоен тем, что это работает в Chrome.изменить начальную позицию горизонтальной полосы прокрутки без jquery

+1

просто установка elm.scrollLeft = 9e9; будет толкать горизонтальный свиток до упора вправо, без необходимости измерения. – dandavis

+0

'document.getElementById ('randomID'). Element.scrollLeft = 9e9' для меня не работает? –

+0

снимите дополнительный «.элемент» и попробуйте его – dandavis

ответ

0

document.body.scrollLeft = (divRef.scrollWidth - divRef.offsetWidth)/2;

ПРИМЕЧАНИЕ:

Это может дать странные результаты с IE8 и ранее.

+0

нечетные результаты находятся в режиме quirks ... – dandavis

+0

Я новичок. Оказывается ли это только на элемент тела? где я могу дать этому идентификатор элемента? Я пробовал этот 'document.getElementById ('randomId'). ScrollLeft = (divRef.scrollWidth - divRef.offsetWidth)/2;' без успеха –

+0

На самом деле, этот метод должен отлично работать с getElementById; большая часть документации по scrollLeft написана для объекта. Какой браузер вы используете? – rfornal

0

Я привел пример с div, вы можете легко настроить его на тег тела или другой div, пожалуйста, просмотрите демоверсию.

var a = document.getElementById('body'); 
console.log(a.clientWidth) 
function moveWin(a) { 
    window.scrollTo(a.clientWidth,0);          

} 
moveWin(a) 

DEMO

Sidenote:

Для выбора тела, просто используйте

var a = document.getElementsByTagName('body')[0] 
Смежные вопросы