Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.10.2012, 12:43
Новичок на форуме
Отправить личное сообщение для lessa Посмотреть профиль Найти все сообщения от lessa
 
Регистрация: 18.10.2012
Сообщений: 1

Определение динамической высоты.
Здравствуйте. Вот в чем суть скрипта:

Есть три колонки, которые я выравниваю по высоте, и делаю я это вот таким скриптиком:
function equalHeight(group) {
            var tallest = 0;
            group.each(function() {
                thisHeight = h(this).height();
                if(thisHeight > tallest) {
                    tallest = thisHeight;
                }
                });
            group.height(tallest);
}

Со своей задачей он справляется на ура. Но, если один пункт меню (гармошки) очень высокий, то он соответственно сильно увеличивает высоты колонок. И при открывании следующего, более короткого пункта меню, высоту колонок не меняет (высота остается очень большой для маленького пункта гармошки). Что бы это пофиксить, я решила брать за основу высоту центральной колонки и присваивать эту высоту остальным 2-м колонкам при клике на любой из пунктов меню. Но с реализацией у меня возникли проблемы. Проблема заключается в том, что при загрузке документа высота установилась, а потом не меняется больше. Помогите, пожалуйста, разобраться.

Ниже представлена моя попытка решить эту проблему. Но что-то с ней не так..

var h = jQuery.noConflict();

	function setHeight(group, centHeight)
	{
		console.log(centHeight + ' passed to the function');
		if (h(window).height() < centHeight)
		{
			group.height(centHeight);
		}
		else {alert('something is wrong');}
	}

	h(document).ready(function(){
		h('.main-menu ul').addClass('hidden');

		setHeight(h(".column"), h('#qwerty').height());
		
		console.log('Init: current height is ' + h('#qwerty').height());

		h('.main-menu .menu-item').on('click', function(){
			h('.main-menu ul').addClass('hidden');
			console.log('Click on non-first element: current height BEFORE CLICK is ' + h('#qwerty').height());
			h(this).children('ul').stop().slideDown(500)
			.parent().siblings().children('ul').stop().slideUp(200);
			h('.main-menu').children(":first").removeClass('active-li-1');
			h('.home-page').stop().slideUp(200);

			console.log('Click on non-first element: current height is ' + h('#qwerty').height());
		});

		h('.main-menu').children(":first").on('click', function(){
			h(this).addClass('active-li-1')
			.siblings().children('ul').stop().slideUp(200);
			h('.home-page').stop().slideDown(200);

			console.log('Click on  element: current height is ' + h('#qwerty').height());
		});
		


	});


http://jsfiddle.net/QNtzv/
Только без картинок отображается.
Ответить с цитированием
  #2 (permalink)  
Старый 18.10.2012, 23:09
Профессор
Отправить личное сообщение для Hoshinokoe Посмотреть профиль Найти все сообщения от Hoshinokoe
 
Регистрация: 08.01.2012
Сообщений: 253

lessa,

что мешает по клику менять ширину ?
h('.main-menu .menu-item').on('click', function(){
...
setHeight(h(".column"), h('#qwerty').height());
});
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение высоты изображения. m-pokrovskii jQuery 4 11.02.2012 02:02
Определение высоты страницы nematod Общие вопросы Javascript 6 20.09.2011 14:30
динамическое определение высоты дива igor04 Javascript под браузер 12 17.08.2011 19:42
GoogleMapAPI определение положения центра карты и высоты namo86 Библиотеки/Тулкиты/Фреймворки 1 21.01.2011 16:49
Определение высоты документа работает не во всех браузерах Neokortex jQuery 5 11.01.2011 17:26