Пока сайт не заработал вновь, предлагаю приобрести его локальную версию. Архив
объемом 2,12 Мб включает в себя более 200 статей по темам создания сайта: HTML,
CSS, Динамический HTML, JavaScript, PHP, дизайн, верстка и многое другое. Сайт
оптимизирован для локального просмотра и не требует подключения к Интернету.
Разрешается передавать его своим друзьям в личное пользование, нельзя только
применять в коммерческих целях и перепечатывать статьи. Стоимость всего архива
1WMZ (один бакс по-нашему) или 30WMR (тридцать рублей значит).
Перечислить деньги можно на счет Z049001049533 или R706338466912. Обязательно
в примечании укажите адрес электронной почты, на который высылать архив.
Сегодня продолжение темы о выравнивании по центру. На этот раз воспользуемся
программированием на языке JavaScript.
Размещение слоя по центру с помощью JavaScript
С помощью собственных написанных функций на языке JavaScript можно определить
ширину и высоту окна браузера в пикселах и точно по центру поместить необходимый
слой. Хотя использование скриптов в этом случае достаточно универсально, этот
метод сопряжен с определенными нюансами. Во-первых, приходится постоянно отслеживать
изменение размеров окна или через определенный промежуток времени центрировать
слой, что, естественно, повышает нагрузку на браузер. Во-вторых, включение скриптов
в код документа увеличивает его объем и снижает производительность сайта. Несмотря
на эти недочеты, применение скриптов для выравнивания по центру удачно использовать,
когда ширина и высота слоя жестко задана в пикселах, например, в случае добавления
flash-ролика или картинки.
Для определения ширины и высоты рабочей области браузера используются методы
document.body.clientWidth и document.body.clientHeight.
Эти методы работают в браузерах Internet Explorer 5, Opera 6, Netscape 6 и выше.
Если вы по какой-либо причине желаете включить поддержку браузера Netscape 4.x,
то следует использовать методы window.innerWidth
и window.innerHeight. Ниже в примерах определение
браузера не делается, поэтому вам придется самостоятельно подправить код, чтобы
он работал в Netscape 4.
Вначале создаем слой с именем xyz шириной 300 и высотой 200 пикселов. Размеры
этого слоя, а также параметры оформления определяются с помощью стилей. Затем
пишем свою функцию putLayer(), которая размещает слой xyz точно по центру рабочей
области окна (пример 1). Чтобы слой всегда был выровнен по центру, при изменении
размера окна браузера, следует использовать функцию setTimeout.
Она будет рекурсивно запускать нашу функцию putLayer() через определенный промежуток
времени.
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem
nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.
Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit
lobortis nisl ut aliquip ex ea commodo consequat.</p>
</body>
</html>
Идентификаторы left и top хранят координаты слоя, при которых он будет размещаться
по центру. Они вычисляются на основе ширины и высоты рабочей области браузера,
из которой вычитается ширина и высота слоя (300 и 200 пикселов соответственно)
и делится пополам.
Рекурсивный вызов функции putLayer происходит каждые 1000 миллисекунд (второй
аргумент в вызове функции setTimeout). Или другими
словами, каждую секунду. Вы можете изменить это значение в меньшую сторону,
чтобы задержки при смещении слоя были минимальны.
Обратите внимание на конструкцию javascript: closeWindow().
Она предназначена для вызова функции closeWindow(), которая прячет наш слой.
Отобразить его по новой можно только обновив веб-страницу или добавив функцию,
показывающую слой. Но это уже сделайте самостоятельно.