Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.02.2011, 22:07
Новичок на форуме
Отправить личное сообщение для angel-13th Посмотреть профиль Найти все сообщения от angel-13th
 
Регистрация: 04.02.2011
Сообщений: 4

Всплывающая форма в центре страницы для гостевой книги
Здравствуйте, создаю сайт и тут встретился с проблемой, которую я не могу решить.
У меня есть файл javascript
function fetch_object_posleft(elm) {
	var left = elm.offsetLeft;
	while((elm = elm.offsetParent) != null) {
		left += elm.offsetLeft;
	}
	return left;
}
function fetch_object_postop(elm) {
	var top = elm.offsetTop;
	while((elm = elm.offsetParent) != null) {
		top += elm.offsetTop;
	}
	return top;
}
function showC(id,obj) {
	document.getElementById("commentDialog").style.left = document.body.clientWidth / 2 - 150 + "px";
	document.getElementById("commentDialog").style.top = fetch_object_postop(obj) + 25 + "px";
	document.getElementById("commentDialog").style.display = "";
	document.getElementById("recN").value = id;
}
function hideC(id) {
	document.getElementById("commentDialog").style.display = "none";
}
function addsm(what,sm) {
	obj = document.getElementById(what);
	obj.value += ":" + sm + ":";
}


и php файл
<div id="commentDialog" style="position: absolute; display: none; z-index: 1000;">
	<form action="addcomment.php" method="POST">
	  <label for="name"><center>Ваше имя:</center></label>
      <p><input type="text" name="user" maxlength="15" style="width: 225px;" /></p>
      <label for="message"><center>Сообщение:</center></label>
      <p></textarea> <textarea id="c" name="message" maxlength="2000" style="width: 225px; height: 

100px;"></textarea><br /></p>
                        			
                        <center><input type="submit" value="Добавить" class="btn"/>
	          <input type="button" value="Отмена" onClick="hideC();"class="btn"/></center>
	  <p><input type="hidden" name="target" id="recN" /></p>
</form>

</div>


Это форма комментирования в гостевой книге. Когда нажимаешь на кнопку "Комментировать" эта форма появляется рядом с самим словом, а по скольку я меня сделан сайт фиксированный ( если так правильно называется), то Форма открывается за пределами страницы.


Моя просьба к вам заключается в том чтобы зафиксировать эту форму в центре страницы.

Если понадобится , вот ссылка гостевой книги http://www.wooden-fantasy.ru/book/gBook.php
Ответить с цитированием
  #2 (permalink)  
Старый 04.02.2011, 23:21
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

а какое отношение это к javascript имеет? мож стоит чуть чуть почитать про html и особенно про css и самому внести в эту строчку -<div id="commentDialog" style="position: absolute; display: none; z-index: 1000;">
изменение длинной в два слова?

Последний раз редактировалось dmitriymar, 04.02.2011 в 23:24.
Ответить с цитированием
  #3 (permalink)  
Старый 04.02.2011, 23:36
Новичок на форуме
Отправить личное сообщение для angel-13th Посмотреть профиль Найти все сообщения от angel-13th
 
Регистрация: 04.02.2011
Сообщений: 4

Сообщение от dmitriymar Посмотреть сообщение
а какое отношение это к javascript имеет? мож стоит чуть чуть почитать про html и особенно про css и самому внести в эту строчку -<div id="commentDialog" style="position: absolute; display: none; z-index: 1000;">
изменение длинной в два слова?

Хорошо, на счет фиксации я разобрался.Если я правильно понял, надо прописать вместо absolute fixed , но как заставить её открываться в центре страницы у меня не получается.
Знаю только то что если в строчке
document.getElementById("commentDialog").style.top = fetch_object_postop(obj) + 25 + "px";

удалить + 25 + "px" , то форма начинает открываться фактически в центре, но в зависимости от положения кнопки "Комментировать" форма открывается в разных местах.

Значит все таки как-то к скрипту привязано.
Прошу помощи!
Ответить с цитированием
  #4 (permalink)  
Старый 04.02.2011, 23:53
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

причём скрипт ? я тебе написал строку в какую нужно внести изменения и изменения css-это касается элементарной разметки и стилей.

document.getElementById("commentDialog").style.lef t = document.body.clientWidth / 2 - 150 + "px";
где ты явно задаёшь ширину свей всплывающей формы в 300 рх, чтобы от центра её начало смещать на 150 рх? соответственно и с высотой тоже . где стили ? где хоть какая то явная человеческая разметка для элементов всплывающего контейнера,а не то что у тебя слеплено из всего что было и неизвестно как оно до кучи будет в итоге ?-это я том что хоть стоит таблицу сделать и в неё внести элементы формы
тебе это нужно самому, чтобы они не вели себя как им заблагорассудится, в зависимости от браузера или любых изменений стиля
ну а в скрипт даже вчитываться не хочу-ты его не писал сам

Последний раз редактировалось dmitriymar, 05.02.2011 в 00:47.
Ответить с цитированием
  #5 (permalink)  
Старый 05.02.2011, 15:17
Новичок на форуме
Отправить личное сообщение для angel-13th Посмотреть профиль Найти все сообщения от angel-13th
 
Регистрация: 04.02.2011
Сообщений: 4

А что означает эта строка в коде?
document.getElementById("commentDialog").style.top = fetch_object_postop(obj) + 25 + "px";
Ответить с цитированием
  #6 (permalink)  
Старый 05.02.2011, 15:42
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

она выставляет координату верха твоего контейнера
Ответить с цитированием
  #7 (permalink)  
Старый 05.02.2011, 16:14
Новичок на форуме
Отправить личное сообщение для angel-13th Посмотреть профиль Найти все сообщения от angel-13th
 
Регистрация: 04.02.2011
Сообщений: 4

dmitriymar, Спасибо!
Я более менее выравнил по центру. Во всяком случае открывается в одном и том же месте.
Вместо этой строки
document.getElementById("commentDialog").style.top = fetch_object_postop(obj) + 25 + "px";

Вписал эту
document.getElementById("commentDialog").style.top = document.body.clientHeight / 2 - 152 + "px";
Ответить с цитированием
  #8 (permalink)  
Старый 05.02.2011, 16:19
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

для фиксед это подходит. для абсолюта не подошло бы.
<div id="commentDialog" style="position: absolute; display: none; z-index: 1000;">
в эту строку вставь жесткие размеры дива. и убери лишние функции какие ты уже не используешь

Последний раз редактировалось dmitriymar, 05.02.2011 в 16:22.
Ответить с цитированием
  #9 (permalink)  
Старый 05.02.2011, 20:10
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от angel-13th
но как заставить её открываться в центре страницы
На то есть валом рекомендаций
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форма для добавления отзывов без перезагрузки страницы Luter1984 Общие вопросы Javascript 4 09.11.2010 09:59
ExtJs Форма для отчета moroz11 ExtJS 1 12.02.2010 15:31
JS-скрипт для вывода результата работы PHP-скрипта в заданном месте страницы Tycoon AJAX и COMET 0 06.11.2009 10:18
Как изменить скрипт, что бы им его можно было использовать для нужной страницы Nick50_70 Общие вопросы Javascript 0 28.04.2009 23:30
Форма для ввода текста с расширенными функциями 0x22b Элементы интерфейса 0 01.09.2008 10:38