Поиск 

Как узнать на сколько прокручен документ (scrollLeft, scrollTop)? Почему scrollLeft, scrollTop всегда равны нулю? Как прокрутить содержимое окна документа?

Вторник, Январь 12, 2010 г.
Узнать на сколько прокручен объект вниз или влево или прокрутить его на определенную велечину можно с помощью свойств scrollTop и scrollLeft объекта.

Примечание: для старых браузеров Netscape (4-6), Opera 5 следует использовать свойства pageXOffset, pageYOffset

1

2

3

4

5

6

7

8

9

10


//Прочитать значение scrollTop

//Прокрутить от верха на 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
Теги: JavaScript Автор: Pryanik | Просмотров: 2368 | Нет комментариев | print |

Похожие статьи

все похожие статьи 
Категории
ТОП 10 - Авторы
  1     Луна   1964     2.93   
  2     pobeda   487     2.96   
  3     Tais   444     3.11   
  4     Foma   139     2.93   
  5     Lubov   52     2.9   
  6     Angel   45     2.93   
  7     Dolores   45     2.77   
  8     Paradiz   31     2.82   
  9     Xenta   29     2.85   
  10     Pryanik   26     2.8   
все авторы 
Последние статьи

Вода

Среда, Январь 24, 2018 г.
|
Луна | 867 |

Фруктовые соки

Среда, Январь 24, 2018 г.
|
Луна | 726 |

Вода и жизнь

Среда, Январь 24, 2018 г.
|
Луна | 1268 |

Торт "Пьяная вишня"

Среда, Январь 24, 2018 г.
|
Луна | 1351 |

Голубцы с грибами

Среда, Январь 24, 2018 г.
|
Луна | 1307 |
Популярные статьи

Маршалловы Острова

Понедельник, Март 14, 2011 г.
|
Луна | 1153 |

Аргентина

Суббота, Февраль 19, 2011 г.
|
Луна | 4952 |

Финляндия

Среда, Март 23, 2011 г.
|
Луна | 4457 |

Зайцев Б. К.

Пятница, Ноябрь 19, 2010 г.
|
Луна | 1710 |

Греко-персидские войны

Вторник, Апрель 12, 2011 г.
|
Луна | 16088 |

Облако тегов