Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.06.2010, 10:01
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Отслеживаем изменение clientWidth
Здравствуйте, чтобы узнать ClientWidth, пользуюсь такой функцией:
function getClientWidth()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.     
  documentElement.clientWidth:document.body.clientWidth;
}

Дело в том что мне нужно узнать ширину клиентского окна, вычесть из неё некоторое значение и показать нужный элемент с изменённой шириной, это успешно получается, но дело в том что если например в опере начать раскрывать панель закладок, то элемент уходит за границы сайта, так как изменяется ширина окна, вот поэтому я задумался о том чтобы отслеживать изменение и автоматически менять ширину элемента, вот думаю может записать ширину окна и проверять, только этот вариант мне кажется тупым, т.к. окно клиент может измениться в любую секунду придётся каждую секунду перепроверять, а это ой как не оптимально, если увеличить промежутки между проверками, то это будет уже будет не актуально и вот может у кого-нибудь есть какие-то идеи и не нужно изобретать велосипед?

Последний раз редактировалось Vulkan, 22.06.2010 в 12:24.
Ответить с цитированием
  #2 (permalink)  
Старый 22.06.2010, 10:06
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Vulkan,
Есть событие onresize, которое срабатывает при изменении размера рабочей области.
__________________
.
Ответить с цитированием
  #3 (permalink)  
Старый 22.06.2010, 10:18
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Сообщение от Skipp Посмотреть сообщение
Vulkan,
Есть событие onresize, которое срабатывает при изменении размера рабочей области.
Большое спасибо за ответ, я даже не знал что разнообразие событий в JS заходит так далеко=). Я погуглил, но не нашёл ответа на ещё один вопросик - может ли это событие показать на сколько изменили окно? Если нет то надо будет запомнить текущую ширину, потом при изменении вызвать функцию getClientWidth(), там вывести текущую ширину, потом вычислить изменение и это изменение добавить к объекту, или просто из новой ширины вычесть нужное мне значение и вписать в ширину объект, я правильно рассуждаю?
Ответить с цитированием
  #4 (permalink)  
Старый 22.06.2010, 10:31
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

вот тот что после или оптимальный, но есть случаи когда и первый нужен
__________________
.
Ответить с цитированием
  #5 (permalink)  
Старый 22.06.2010, 10:34
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Спасибо, Skipp, жаль + не могу поставить, выводит "Вы должны повысить репутацию кому-то ещё, прежде чем...", вопрос закрыт.
Ответить с цитированием
  #6 (permalink)  
Старый 22.06.2010, 10:37
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Vulkan,
Ну да, потому что последний кому вы ставили плюсик, был я)
Фиг с ним)
__________________
.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение аттрибута action формы firefox svas jQuery 3 27.05.2010 06:56
Разные значения clientWidth в ie и ff SILVERSPEED Events/DOM/Window 6 20.04.2010 01:11
изменение переменной Ilja_ORDY Общие вопросы Javascript 3 09.09.2008 18:56
Динамическое изменение <input text> baal1988 Events/DOM/Window 4 24.08.2008 17:17
Динамическое изменение размеров изображения Макс Элементы интерфейса 7 21.07.2008 16:55