Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.10.2014, 09:35
Аспирант
Отправить личное сообщение для Makkssimka Посмотреть профиль Найти все сообщения от Makkssimka
 
Регистрация: 13.11.2012
Сообщений: 51

Событие ресайза
Суть вот в чем в CSS3 есть такая фишка как высота элемента в vh, при значении 100 растягивает блок на высоту окна. К сожалению не все браузеры его поддерживают. Пытаюсь реализовать данную функцию через jQuery, таким образом
$(document).ready(function(){
	
	h = $('#menu').css('height'); // узнаем высоту блока (проверяем работает ли vh)
	if(h == '0px'){ //если не работает, делаем симуляцию
			h_doc = $(document).height();
			$('.vh').css('height', h_doc);
			vh = false;	
		}
		
	$(window).resize(function(){  //изменяем значение при ресайзе окна
		if(vh == false){
 			h_doc = $(document).height();
			console.log(h_doc);
			$('.vh').css('height', h_doc);
		}
	});
});


Но при изменение размера окна, переменная h_doc суммируется. То есть консоль выдает следующее:
8176
16352
32704
65408
130816
261632
523264
1046528

В чем может быть дело?
Ответить с цитированием
  #2 (permalink)  
Старый 12.10.2014, 12:56
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Высота документа != Высота окна, ты вкурсе?
Ты когда увеличиваешь высоту .vh, то также наращивается высота документа, то есть из-за обратной связи высота постоянно растет.
И где потерял ключевое слов "var" перед объявлением переменных?
Сообщение от Makkssimka
if(h == '0px')
Это неправильное условие. Если браузер не поддерживает vh, то он проигнорирует просто это правило. То есть height будет auto либо может быть пустая строка, я тут не разбираюсь, но уж точно не 0, тем более не 0px

Также непонятно, зачем ты вешаешь обработчик window@resize даже если браузер поддерживает vh? Ну и код дублировать - это не есть гуд.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 12.10.2014, 13:04
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Был неправ насчет 0px. Оно может быть, но только если див пустой. Вобще я был бы тут поосторожнее с условием.
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Событие на input radio redwert Элементы интерфейса 3 23.09.2014 09:45
Событие click Гробовщик jQuery 1 31.07.2013 07:28
Событие input и IE10 kobezzza Internet Explorer 2 21.03.2013 19:02
Как правильно подавить событие при подключении своего обработчика? Маэстро Firefox/Mozilla 2 03.09.2011 11:46
Отловить событие simple Events/DOM/Window 3 11.05.2011 14:20