динамическое изменение высоты блока

программирование JavaScript css веб дизайн

Подскажите, пожалуйста, каким образом можно перехватывать значение высоты div-блока (которая может рандомно меняться) и передавать ее другому блоку?

Я пробовал следующим образом:

$("#mid").resize(function() {
var aheight = $("#mid").height();
$("#autoheight").height(aheight);
});

Но, видимо, я что-то не догоняю. Если вместо .resize ставить .mousemove - работает, но только при муве, что логично, но недостаточно.

Примечание:
Пользователь нажимает на кнопку, которая запускает slideToggle, что приводит к изменению размера блока #mid, но не влияет на размер общего блока шаблона, поскольку #mid имеет position:absolute; Хочется, чтобы шаблон все-таки растягивался, соответственно контенту #mid.

Примечание:
Спасибо. Наткнулся на ваш вопрос по теме на форумах jquery. В итоге все работает:

//колбекаем степ на тогле
function show_chlog()
{
//вместо этого: $('#chlog').slideToggle("slow"); ставим:
$('#chlog').animate({height:"toggle"},{step:step});
}

//меняем высоту каждый степ
function step(){
var aheight = $("#mid").height();
$("#autoheight").height(aheight);
};
Ответы:
$("#mid").resize(function(){}) сработает только если вы инициируете событие resize для #mid (например так: $("#mid").resize())
Если размер блока меняется автоматом после изменения размеров окна браузера пользователем тогда делайте:
$(window).resize(function() {
   var aheight = $("#mid").height();
   $("#autoheight").height(aheight);
});
Если скриптом меняете размер блока то там же и меняйте размер другого блока.
У slideToggle есть параметр step, в котором можно указать функцию, которая будет выполняться на каждом шаге анимации.
Я написал бы код, но с мобильника это проблематично.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.