Добрый день. Поздравляю вас всех с праздником. Буржуйский он конечно, что говорить,
но мы к нему уже привыкли, так что не грех и поздравить лишний раз. Мне пустяк,
а вам приятно.
Продолжаем тему о динамическом HTML и разных вещах творимых с его помощью.
Определение ширины окна браузера
Для некоторых задач требуется размещать слой по правому краю окна
браузера. Но поскольку положение слоя задается в пикселах, для его
размещения требуется знать, сколько же именно пикселов занимает
окно браузера.
Для определения ширины и высоты рабочей области браузерами используется
разный подход. Internet Explorer и Opera получают значение ширины
через метод document.body.clientWidth,
а Netscape - через window.innerWidth.
Высота определяется аналогично, только Width меняется на Height.
В конечном итоге, функции, написанные на JavaScript, будут иметь
вид, как показано в примере.
Пример 1. Функции для определения высоты и ширины
<script language="JavaScript">
// Определение браузера IE = (document.all); // Internet Explorer?
NC = (document.layers); // Netscape?
Opera = (document.getElementById); // Opera?
function getHeight() {
// Получаем высоту рабочей области браузера
if (IE || Opera) send = document.body.clientHeight;
if (NC) send = window.innerHeight;
return send;
}
function getWidth() { //
Получаем ширину рабочей области браузера
if (IE || Opera) send = document.body.clientWidth;
if (NC) send = window.innerWidth;
return send;
}
</script>
Чтобы использовать приведенные функции, вначале нужно создать слой
с абсолютным позиционированием.
Положение слоя определяется параметром z-index.
Чтобы слой располагался поверх остального текста, его значение следует
задавать положительным числом больше нуля. Если слой нужно размещать
ниже теста, - используется отрицательное значение.
Для указания положения слоя в правом верхнем углу, напишем функцию
для этого.
Пример 3. Задание положения слоя в правом углу браузера
Поскольку положение слоя отсчитывается от левого верхнего угла,
следует от ширины рабочей области отнять ширину слоя (в примере
- 100 пикселей). Если слой будет размещаться внизу окна, то же самое
следует проделать и с высотой.
Чтобы заданный слой всегда оставался в указанном месте и не менял
свое положение при изменении размера окна, используется функция
setTimeout, которая каждые 1000 миллисекунд
(или 1 секунда по другому) восстанавливает положение слоя.
Вызывать функцию приведенную в примере 3 можно по разному, например
через событие onLoad.
Пример 4. Автоматический вызов функции
<body onLoad="putLayer()">
...
</body>
Приведем полные листинги размещения слоя по разным углам браузера.
В правом верхнем углу
<html>
<head>
<script language="JavaScript">
IE = (document.all);
NC = (document.layers);
Opera = (document.getElementById);
function getHeight() {
if (IE || Opera) send = document.body.clientHeight;
if (NC) send = window.innerHeight;
return send;
}
function getWidth() {
if (IE || Opera) send = document.body.clientWidth;
if (NC) send = window.innerWidth;
return send;
}
Copyright 2002 Влад Мержевич, e-mail: vlad@htmlbook.ru Материалы сайта охраняются законом об авторском
праве.
Вы можете свободно использовать и распространять любые статьи с указанием
автора и ссылки на сайт www.htmlbook.ru.