Javascript.RU

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

Прыжки в resizable
Подскажите, пожалуйста!

При изменении размеров DIV данные передаю в форму: всё, вроде бы работает верно, но вдруг возвращаются странные значения.

1) вначале обнаружил, что если изменение размеров ограничено внешним div, то если тянуть за нижнюю границу изменяемого элемента, то на экране всё выглядит замечательно, но функция всё равно передает значение относительного положения мышки. Это бы и ладно. Контролирую максимально возможный размер и пересчитываю для данных поля формы,

2) Но почему-то, меняя размеры внутри ограничения значения ui.size.height принимают какие-то непонятные величины.

$("#Advertising").resizable(({
	containment:"#TVscreen",
	stop: function(event, ui){
		$("#adv_width").val(ui.size.width);
		$("#adv_height").val(ui.size.height);
// проверка на размеры при движении мышки за пределами ограничивающего div 
		if(document.getElementById('adv_width').value>document.getElementById('TVscreen').style.width){
			document.getElementById('adv_width').value=parseInt(document.getElementById('TVscreen').style.width);
		};
		if(document.getElementById('adv_height').value>document.getElementById('TVscreen').style.height){
			document.getElementById('adv_height').value=parseInt(document.getElementById('TVscreen').style.height);
		};
//проверка на отступ+ширина<=ширины картинки экрана и, соответственно высота+размер_верт.<=высоты "экрана"
		if((parseInt($("#adv_width").val())+parseInt($("#adv_left").val()))>parseInt($('#TVscreen').width())){
			$("#adv_width").val( (parseInt($('#TVscreen').width())-parseInt($("#adv_width").val())) );
		}
		if((parseInt($("#adv_height").val())+parseInt($("#adv_top").val()))>parseInt($('#TVscreen').height())){
			$("#adv_height").val( (parseInt($('#TVscreen').height())-parseInt($("#adv_top").val())) );
		}
	}
}));


Слой, с изменяемыми размерами может перемещаться внутри ограничивающего div. Поэтому при изменении размеров учитываю положение верхнего левого угла.

На мой взгляд вроде как правильно написано... но, то ли туплю, то ли взгляд "замылился"

Пробовал поставить вместо обработки по окончанию (stop) обработку по движению мышки (resize) - вообще парадокс: в какой-то момент возвращаемые данные принимают невероятное значение...

Использую jquery:
jquery-1.7.2.min.js
jquery-ui-1.8.16.custom.min.js

Буду признателен за совет!

Последний раз редактировалось swa, 15.04.2012 в 12:42. Причина: комментарий добавлен для JS
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с resizable voice Элементы интерфейса 0 30.03.2012 21:42
Прыжки в браузере... kolyaset Events/DOM/Window 1 15.09.2011 15:25
resizable div atm779 Общие вопросы Javascript 1 05.01.2009 01:51
Jquery resizable pi3.14 jQuery 0 15.10.2008 09:37