Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Изменение одного блока относительно другого
Покинул форум
Сообщений всего: 48
Дата рег-ции: Февр. 2010
Помог: 0 раз(а)
Подскажите пожайлуста JS для изменения одного блока относительно другого
Тоха
Отправлено: 09 Апреля, 2010 - 16:31:51
Гость
Покинул форум
Сообщений всего: 114
Дата рег-ции: Март 2010 Откуда: Орел, Россия
Помог: 0 раз(а)
например?
JustUserR
Отправлено: 09 Апреля, 2010 - 17:12:11
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Domain пишет:
Подскажите пожайлуста JS для изменения одного блока относительно другого
Если вы имеете в виду позиционирование - то если они позиционированы абсолютно то просто поменять местами их координаты - если относительно то еще проставить соответствующие float и отступы друг от друга
В общем можно поменять блоки местами за счет их вырезки из родительского блока за счет копирования и removeChild и последующей вставки в обработном порядке appendChild
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Domain
Отправлено: 09 Апреля, 2010 - 17:15:42
Новичок
Покинул форум
Сообщений всего: 48
Дата рег-ции: Февр. 2010
Помог: 0 раз(а)
Извеняюсь, очень туманно написал.
Я хотел сказать при высоте блока класса content, блок класса bg меняет свою высоту как height(bg) = height(content) - 400px;
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Domain пишет:
Извеняюсь, очень туманно написал.
Я хотел сказать при высоте блока класса content, блок класса bg меняет свою высоту как height(bg) = height(content) - 400px;
Если один находится внутри другого и позиционирование относительное то он сам будет менят свою высоту при правильной привязке Иначе просто с помощью JS рассчитываете текущую высоту блока и для него меняете высоту соответсвующего блока - это можно автоматизировать с помощью CSS-функции expression
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Domain
Отправлено: 09 Апреля, 2010 - 19:51:36
Новичок
Покинул форум
Сообщений всего: 48
Дата рег-ции: Февр. 2010
Помог: 0 раз(а)
Да нет они не находятся друг в друге.
Мне нужен JS.
Дайте пример как это пишется.
Пытался мудрить чтото вроде этого
function bgcontent(){
var nodes = document.getElementById("content");
document.getElementByClass("bg").style.height = nodes.offsetHeight- 400 + "px";
}
bgcontent();
неработает
Domain
Отправлено: 10 Апреля, 2010 - 12:05:27
Новичок
Покинул форум
Сообщений всего: 48
Дата рег-ции: Февр. 2010
Помог: 0 раз(а)
Domain пишет:
Да нет они не находятся друг в друге.
Мне нужен JS.
Дайте пример как это пишется.
Пытался мудрить чтото вроде этого
function bgcontent(){
var nodes = document.getElementById("content");
document.getElementByClass("bg").style.height = nodes.offsetHeight- 400 + "px";
}
bgcontent();
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Domain пишет:
Да нет они не находятся друг в друге. Мне нужен JS.
Тут не особенно принципиально находятся ли они друг в друге или нет - это было бы принципиально при решении данной задачи в чистом CSS Как я понял у вас есть два div-блока и надо чтобы при изменении высоты одного (Например вставки в него текста) изменялся размер и другого блока - для этого в CSS-стиль второго блока можете вставить метод expresion который будет выполнять необходимый пересчет - только лучше использовать currentStyle и runtimeStyle чтобы не выполнялись лишнее операции
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Domain
Отправлено: 10 Апреля, 2010 - 22:52:07
Новичок
Покинул форум
Сообщений всего: 48
Дата рег-ции: Февр. 2010
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Domain пишет:
Всетаки в большей мере решилось в CSS
Тут все зависит от блочной системы браузера которая у кадого по умолчанию своя При этом за расположения блоков отвечает не только позиционирование float но и опция box-sizing -которая на IE установлена в режим выравниваия по границе блока
Что касается усовершенствоания вашего JS-скрипта то можно сделать так чтобы expression не пересчитывался постоянно - например сделать переопределеющий код в runtimeStyle и только при изменении размера того блока (Например вставки в него текста или другого событя) вызывать expression заново (Поставиь функцию внутри expression которая за это будет отвечать)
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.