Javascript.RU

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

Помогите отцентрировать по вертикали всплывающее окно!
Добрый день!

У меня следующая проблема:
у меня есть страница html, в которой есть слово "ПРИМЕР". К этому слову прицеплено всплывающее окно, которое вызывается через отдельный файл следующей функцией:

$("#showExample").click(function(){
$("#example-window").fadeIn("normal");
return false;
})

У меня стоит проблема: т.к. страница со словом "ПРИМЕР" достаточно "длинная", а само слово находится почти внизу страницы, то всплывающее окно всплывает вверху браузера, его просто не видно. Я задала через CSS top=100%, после чего окно стало всплывать почти в нужном месте. Но встала другая проблема: при некоторых разрешениях браузеров окно все равно "уходит" за экран.

Прошу подсказать, как универсально всплывающее окно привязать к конкретному месту на странице (в моем случае - к слову "ПРИМЕР")

П.С. Если можно, объясните наиболее понятно, потому как в javascript я почти не бум-бум

Заранее спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 27.09.2010, 16:58
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Если нужно в тоже самое место, где находится элемент поместить другой, то есть несколько вариантов, возможно в вашем случае подойдет простое вычисление координат по двум осям $('#id').offset().top / left

a вообще, если нужно выронить с абсолютным позиционированием элемент, то:
position: absolute;
bottom: 0px;


чтобы элемент постоянно находился в одном месте экрана
position: fixed;

Последний раз редактировалось monolithed, 27.09.2010 в 17:01.
Ответить с цитированием
  #3 (permalink)  
Старый 27.09.2010, 17:32
Новичок на форуме
Отправить личное сообщение для Ksushan Посмотреть профиль Найти все сообщения от Ksushan
 
Регистрация: 21.09.2010
Сообщений: 5

с вашим вариантом через bottom:0 px или position: fixed - все равно не получается.
Всплывающее окно в этих случаях не привязывается к низу окна браузера в том месте, гед юзер находится

Оно привязывается к низу окна браузера, как если бы страница только открылась (то есть отсчет идет от самого верха страницы)
Ответить с цитированием
  #4 (permalink)  
Старый 27.09.2010, 17:36
Новичок на форуме
Отправить личное сообщение для Ksushan Посмотреть профиль Найти все сообщения от Ksushan
 
Регистрация: 21.09.2010
Сообщений: 5

... подойдет простое вычисление координат по двум осям $('#id').offset().top / left



не подскажете, а в моем примере как это будет выглядеть? вот с вашим кодом?

вот так:

$('#example-window').offset().100 /100
$("#showExample").click(function(){
$("#example-window").fadeIn("normal");
return false;
})

или надо в какое-то другое место вставить?

Последний раз редактировалось Ksushan, 27.09.2010 в 17:39.
Ответить с цитированием
  #5 (permalink)  
Старый 27.09.2010, 18:19
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Внимательно изучите примеры:

В это случае выравнивание происходит относительно оси X
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<style type="text/css">
#div1,  #div2 {
	width: 50px;
	height: 50px;
}

#div1 {
	background: red;
	margin: 0px auto;
}

#div2 {
	background: green;
	position: absolute;
}
</style>
<script>
$(function(){
	$('#div2').css('left', $('#div1').offset().left);
});
</script>
<div id="div1"></div>
<div id="div2"></div>


а в этом случае относительно оси X и Y, т.е. элемент #div2 лежит в тех же координатах, что и элемент #div1 (перекрывает)
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<style type="text/css">
#div1,  #div2 {
	width: 50px;
	height: 50px;
}

#div1 {
	background: red;
	margin: 0px auto;
}

#div2 {
	background: green;
	position: absolute;
}
</style>
<script>
$(function(){
	var offset = $('#div1').offset();
	$('#div2').css({
		top : offset.top,
		left : offset.left
	});
});
</script>
<div id="div1"></div>
<div id="div2"></div>


PS: но мне кажется, в вашей задаче можно и CSS обойтись

Последний раз редактировалось monolithed, 27.09.2010 в 18:26.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фрейм и всплывающее окно Uri Элементы интерфейса 6 02.02.2013 01:52
Вывод данных из базы в цикле со ссылкой на всплывающее окно alexvb Events/DOM/Window 14 10.02.2012 16:16
Всплывающее окно для множественной загрузки файлов Mutagena jQuery 1 27.06.2010 19:35
флешка и всплывающее окно prokopov-nikolai Internet Explorer 0 25.12.2009 14:40
цвет кнопки, цвет текста на кнопке, всплывающее окно matana Общие вопросы Javascript 8 26.05.2009 17:08