Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.08.2009, 10:57
Аватар для JSprog
L
Отправить личное сообщение для JSprog Посмотреть профиль Найти все сообщения от JSprog
 
Регистрация: 16.08.2009
Сообщений: 416

Модуль для работы с геометрией окна
Хочу представить вам ещё один модуль Дэвида Флэнагана.
Для работы с геометрией окна.
Задача модуля:представить кросс-браузерные методы для определения:
1)положения окна на экране
2)размеров клиентской области окна
3)размеров документа
4)смещения документа относительно окна
var Geometry = {};
if (window.screenLeft === undefined) { // Для IE и других
Geometry.getWindowX = function() { return window.screenLeft; };
Geometry.getWindowY = function() { return window.screenTop; };
}
else if (window.screenX) { // Для Firefox и других
Geometry.getWindowX = function() { return window.screenX; };
Geometry.getWindowY = function() { return window.screenY; };
}


if (window.innerWidth) { // Все броузеры, кроме IE
Geometry.getViewportWidth = function() { return window.innerWidth; };
Geometry.getViewportHeight = function() { return window.innerHeight; };
Geometry.getHorizontalScroll = function() { return window.pageXOffset; };
Geometry.getVerticalScroll = function() { return window.pageYOffset; };
}
else if (document.documentElement && document.documentElement.clientWidth) {
// Эти функции предназначены для IE и документов с объявлением DOCTYPE
Geometry.getViewportWidth =
function() { return document.documentElement.clientWidth; };
Geometry.getViewportHeight =
function() { return document.documentElement.clientHeight; };
Geometry.getHorizontalScroll =
function() { return document.documentElement.scrollLeft; };
Geometry.getVerticalScroll =
function() { return document.documentElement.scrollTop; };
}
else if (document.body.clientWidth) {
// Эти функции предназначены для IE без объявления DOCTYPE
Geometry.getViewportWidth =
function() { return document.body.clientWidth; };
Geometry.getViewportHeight =
function() { return document.body.clientHeight; };
Geometry.getHorizontalScroll =
function() { return document.body.scrollLeft; };
Geometry.getVerticalScroll =
function() { return document.body.scrollTop; };
}


// Следующие функции возвращают размеры документа.
// Они не имеют отношения к окну, но бывает удобно иметь их.
if (document.documentElement && document.documentElement.scrollWidth) {
Geometry.getDocumentWidth =
function() { return document.documentElement.scrollWidth; };
Geometry.getDocumentHeight =
function() { return document.documentElement.scrollHeight; };
}
else if (document.body.scrollWidth) {
Geometry.getDocumentWidth =
function() { return document.body.scrollWidth; };
Geometry.getDocumentHeight =
function() { return document.body.scrollHeight; };
}
__________________
Лови позитив

Последний раз редактировалось JSprog, 31.08.2009 в 12:32.
Ответить с цитированием
  #2 (permalink)  
Старый 31.08.2009, 12:02
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

JSprog,
ты в наборе текста тренируешься? Или тебе их даже перепечатывать не приходится?
Ответить с цитированием
  #3 (permalink)  
Старый 31.08.2009, 12:09
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Функции определения клиентской области неправильные.
Ответить с цитированием
  #4 (permalink)  
Старый 31.08.2009, 12:10
Аватар для JSprog
L
Отправить личное сообщение для JSprog Посмотреть профиль Найти все сообщения от JSprog
 
Регистрация: 16.08.2009
Сообщений: 416

Сообщение от Kolyaj
Функции определения клиентской области неправильные.
Почему?
__________________
Лови позитив
Ответить с цитированием
  #5 (permalink)  
Старый 31.08.2009, 12:11
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

JSprog,
во-первых, это не моя цитата. Во-вторых, ты сам-то проверял все те функции, которые постишь?
Ответить с цитированием
  #6 (permalink)  
Старый 31.08.2009, 12:13
Аватар для JSprog
L
Отправить личное сообщение для JSprog Посмотреть профиль Найти все сообщения от JSprog
 
Регистрация: 16.08.2009
Сообщений: 416

Я хз почему написано что твоя=)
Да всё работет
__________________
Лови позитив
Ответить с цитированием
  #7 (permalink)  
Старый 31.08.2009, 12:20
Аватар для JSprog
L
Отправить личное сообщение для JSprog Посмотреть профиль Найти все сообщения от JSprog
 
Регистрация: 16.08.2009
Сообщений: 416

А если ты про то что там есть отдельно для doctype и без него то это для старых версий ИЕ
__________________
Лови позитив
Ответить с цитированием
  #8 (permalink)  
Старый 31.08.2009, 12:25
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от JSprog
Да всё работет
В скольких браузерах проверял?

И еще: если уж выкладываешь скрипты, так оформляй их нормально.
Ответить с цитированием
  #9 (permalink)  
Старый 31.08.2009, 12:32
Аватар для JSprog
L
Отправить личное сообщение для JSprog Посмотреть профиль Найти все сообщения от JSprog
 
Регистрация: 16.08.2009
Сообщений: 416

В ИЕ и в Мозиле(а значит и всех W3C браузерах)
__________________
Лови позитив
Ответить с цитированием
  #10 (permalink)  
Старый 31.08.2009, 12:33
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Вот и без всяких DOCTYPE

function getClientWidth(){return document.compatMode=='CSS1Compat'&&!window.opera?document.documentElement.clientWidth:document.body.clientWidth;}
function getClientHeight(){return document.compatMode=='CSS1Compat'&&!window.opera?document.documentElement.clientHeight:document.body.clientHeight;}

Последний раз редактировалось B~Vladi, 31.08.2009 в 12:41.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование window.open() для позиционирования окна в середине экрана marat-chessman Events/DOM/Window 13 14.08.2011 20:20
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31
Кросс-браузерные функции B~Vladi Ваши сайты и скрипты 128 01.09.2009 17:11
Script для автоматизации работы с браузером ksa791 Общие вопросы Javascript 6 02.04.2009 14:30