Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Диалоговое окно (https://javascript.ru/forum/jquery/23481-dialogovoe-okno.html)

ksevelyar 24.11.2011 22:28

Диалоговое окно
 
Хочу сделать простенькую формочку из двух input и кнопки — появляется по клику на ссылке-кнопке.

Без всяких эффектов.

Как это лучше сделать?

jQuery UI использовать не хочу, но возможно в стандартном jQuery есть стандартные способы/функции для диалоговых окошек?

Если нет, то вставлять после ссылки-кнопки форму и делать ей абсолютное позиционирование в центр экрана?

Как обработать клик вне формы, чтобы её закрыть?

ksa 25.11.2011 09:45

ksevelyar, как вариант...

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
#win {
	width: 150px;
	padding: 10px;
	border: 1px solid;
	display: none;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
	$('#btn_win').click(function(){
		var val=$(this).text();
		if (val=='Open') {
			$(this).text('Close');
			$('#win').show();
			setTimeout(function (){
				$(document).bind('click',close);
			},100);
		} else {
			closeWin();
		};
	});
});
function close() {
	var e=event.target||event.srcElement;
	if (e.id=='win'||$(e).parents('#win').length>0) {
		return false;
	}
	closeWin();
};
function closeWin() {
	$('#btn_win').text('Open');
	$('#win').hide();
	$(document).unbind('click',close);
};
</script>
</head>
<body>
<a id='btn_win' href='#'>Open</a>
<div id='win'>
	<form>
		<input type='text' />
		<input type='button' value='Save' />
	</form>
</div>
</body>
</html>

Pavel M. 25.11.2011 10:39

Цитата:

Сообщение от ksevelyar
и делать ей абсолютное позиционирование в центр экрана?

это можно так сделать, если высоту и ширину знаешь

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>demo</title>
  
  <style type='text/css'>

    div {
		position: fixed;
		border: 1px solid;
		width: 200px;
		height: 100px;
		left: 50%;
		margin-left: -100px; /* половина ширины */
		top: 50%;
		margin-top: -50px; /* половина высоты */
	}

  </style>

</head>
<body>

  <div>окно по центру экрана</div>
 
</body>
</html>


Часовой пояс GMT +3, время: 04:28.