Библиотека Интернет Индустрии I2R.ru |
|||
|
Определение ширины окна браузераПродолжаем тему о динамическом HTML и разных вещах творимых с его помощью. Для некоторых задач требуется размещать слой по правому краю окна браузера. Но поскольку положение слоя задается в пикселах, для его размещения требуется знать, сколько же именно пикселов занимает окно браузера. Для определения ширины и высоты рабочей области браузерами используется разный подход. Internet Explorer и Opera получают значение ширины через метод document.body.clientWidth, а Netscape - через window.innerWidth. Высота определяется аналогично, только Width меняется на Height. В конечном итоге, функции, написанные на JavaScript, будут иметь вид, как показано в примере. Пример 1. Функции для определения высоты и ширины<script language="JavaScript"> // Определение браузера function getHeight() {
// Получаем высоту рабочей области браузера function getWidth() { //
Получаем ширину рабочей области браузера </script> Чтобы использовать приведенные функции, вначале нужно создать слой с абсолютным позиционированием. Пример 2. Создание слоя<div id=xyz style="position:
absolute; top: 0px; width: 100px; z-index: 1"> Положение слоя определяется параметром z-index. Чтобы слой располагался поверх остального текста, его значение следует задавать положительным числом больше нуля. Если слой нужно размещать ниже теста, - используется отрицательное значение. Для указания положения слоя в правом верхнем углу, напишем функцию для этого. Пример 3. Задание положения слоя в правом углу браузераfunction putLayer() { Поскольку положение слоя отсчитывается от левого верхнего угла, следует от ширины рабочей области отнять ширину слоя (в примере - 100 пикселей). Если слой будет размещаться внизу окна, то же самое следует проделать и с высотой. Чтобы заданный слой всегда оставался в указанном месте и не менял свое положение при изменении размера окна, используется функция setTimeout, которая каждые 1000 миллисекунд (или 1 секунда по другому) восстанавливает положение слоя. Вызывать функцию приведенную в примере 3 можно по разному, например через событие onLoad. Пример 4. Автоматический вызов функции
<body onLoad="putLayer()">
... </body> Приведем полные листинги размещения слоя по разным углам браузера. В правом верхнем углу
<html>
<head> <script language="JavaScript"> IE = (document.all); function getHeight() { function getWidth() { function putLayer() { </script> <body onLoad="putLayer()"> <div id=xyz style="position: absolute; top: 0px;
width: 100px; z-index: 1"> В правом нижнем углу
<html>
<head> <script language="JavaScript"> // функции getHeight и getWidth описываются как в примере 1 function putLayer() { if(IE) { if(NC) { if(Opera) { setTimeout('putLayer()',1000); </script> <body onLoad="putLayer()"> <div id=xyz style="position: absolute; top: 0px;
width: 100px; z-index: 1"> В левом нижнем углу<html> // функции getHeight и getWidth описываются как в примере 1 function putLayer() { if(IE) eval('document.all["xyz"].style.top = heightBrowser'); setTimeout('putLayer()',1000); </script> <body onLoad="putLayer()"> <div id=xyz style="position: absolute; left: 0px;
top: 0px; width: 100px; z-index: 1"> </body> |
|
2000-2008 г. Все авторские права соблюдены. |
|