Як дізнатися на скільки прокручений документ (scrollleft, scrolltop) чому scrollleft, scrolltop


document.getElementById ( 'Layer1'). scrollTop // Прочитати значення scrollTop

document.getElementById ( 'Layer1'). scrollTop = 50; // Прокрутити від верху на 50 вниз

Але коли справа стосується прокрутки всього документа, то потрібно враховувати наявність в документі конструкції! DOCTYPE. Якщо! DOCTYPE перемикає браузер в режим проходження стандартам, то деякі властивості об'єкта document.body стають доступними лише через об'єкт document.documentElement, це відноситься і до властивостей scrollLeft, scrollTop.

Якщо браузер знаходиться в режимі CSS1Compat (режим проходження стандартам), що можна дізнатися з властивості document.compatMode, document.body.scrollLeft і document.body.scrollTop завжди дорівнюватимуть нулю, а правильні значення можна отримати через document.documentElement.scrollTop і document .documentElement.scrollLeft. Але все змінюється навпаки якщо браузер перебувати в режимі зворотної сумісності (document.compatMode == "BackCompat").

Нижче показано як дізнатися значення scrollTop і scrollLeft для тіла документа:

function getBodyScrollTop ()
return self.pageYOffset || (document.documentElement document.documentElement.scrollTop) || (document.body document.body.scrollTop);
>

function getBodyScrollLeft ()
return self.pageXOffset || (document.documentElement document.documentElement.scrollLeft) || (document.body document.body.scrollLeft);
>
* На замітку: методи scrollBy (numHorz, numVert) і scrollTo (numX, numY) так само дозволяють прокуручівать вміст об'єкта.

scrollBy (numHorz, numVert) - прокручує на вказане зміщення від поточного положення (numHorz, numVert можуть приймати позитивні, негативні значення, а так само 0 для того щоб отсавіл положення без зміни).

scrollTo (numX, numY) - прокручує вміст до певної позиції.

Наприклад: window.scrollBy (0, -10); // піднятися вгору на 10 пікселів
Взято з www.tigir.com