Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Нужно создать диалоговое окно (https://javascript.ru/forum/misc/27694-nuzhno-sozdat-dialogovoe-okno.html)

Dim@ 21.04.2012 19:32

Нужно создать диалоговое окно
 
Всем доброго времени суток нужно создать диалоговое окно вот только проблема я читал что это делается спомощью Jquery, но я не знаю Jquery я знаю лишь простой javascript.В общем мне надо что-бы кто-нибудь мне объяснил как его сделать (диалоговое окно типа alert).Заранее благодарен.:-?

Caminante 21.04.2012 20:05

А разве на "простом" JavaScript нельзя создать диалоговое окно типа alert? Или нужны эффекты плавного появления и т.п.?

Octane 21.04.2012 20:09

А разве на "простом" JavaScript нельзя создать эффекты плавного появления и т.п.?

Caminante 21.04.2012 20:17

Octane, естественно, можно, просто в вопросе прозвучало утверждение, что для создания диалогового окна обязательно нужен jQuery.

Gvozd 21.04.2012 20:42

Цитата:

Сообщение от Caminante
в вопросе прозвучало утверждение, что для создания диалогового окна обязательно нужен jQuery.

а) в вашем вопросе не было ничего подобного
Если уж на то пошло, то вы и вопроса-то не задали.
цитирую:
Цитата:

Сообщение от Dim@
я читал что это делается спомощью Jquery

то есть вы только читали об этом утверждении.
при этом вы все равно его исказили, потому что в прочитанном не было написано что jQuery нужен обязательно
вы это потом придумали.
пожалуйста, не придумывайте лишнего - здесь серьезный форум, а не фантазерский
б)
раз уж вы непременно хотите создать диалоговое окно с обязательным применением JQuery, то вот вам заготовка:
<script src="jquery.js" />
<script>
if(jQuery) {
    //тут код диалогового окна на чистом JavaScript
}
</script>

Octane 21.04.2012 21:05

Чет начал писать, хотел с CSS-анимацией поиграться, потом лень стало… короче вот примерно так делается без jQuery:
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>…</title>
	<style>
		.alert .alert-shadow {
			position: fixed;
			top: 0;
			width: 100%;
			height: 100%;
			left: 0;
			background: #000;
			opacity: 0.5;
			filter: alpha(opacity=50);
		}
		.alert .alert-dialog {
			position: fixed;
			top: 30%;
			left: 50%;
			width: 300px;
			margin-left: -150px;
			padding: 10px 0;
			background: #fff;
			border: 1px solid #000;
		}
		.alert .alert-text {
			padding: 10px;
		}
		.alert .alert-controls {
			text-align: center;
		} 
	</style>
</head>
<body>
	<script>
		function Alert(text) {
			this._create(text);
		}
		Alert.prototype = {
			constructor: Alert,
			html: [
				'<div class="alert">',
					'<div class="alert-shadow"></div>',
					'<div class="alert-dialog">',
						'<div class="alert-text">',
							'{TEXT}',
						'</div>',
						'<div class="alert-controls">',
							'<button>OK</button>',
						'</div>',
					'</div>',
				'</div>'
			].join(""),
			_rootElement: null,
			_create: function (text) {
				var node = document.createElement("div");
				node.innerHTML = this.html.replace("{TEXT}", text);
				this._rootElement = node.firstChild;
				this._addEvents();
			},
			_addEvents: function () {
				var thisAlert = this;
				this._rootElement.getElementsByTagName("button")[0].onclick = function () {
					thisAlert.close();
				};
			},
			show: function () {
				document.body.appendChild(this._rootElement);
			},
			close: function () {
				document.body.removeChild(this._rootElement);
			}
		};
	</script>
	<button onclick="new Alert('Работает!').show();">Show</button>
</body>
</html>
IE7+ из-за position:fixed

Раед 21.04.2012 21:16

Цитата:

Сообщение от Octane
html: [
'<div class="alert">',
'<div class="alert-shadow"></div>',
'<div class="alert-dialog">',
'<div class="alert-text">',
'{TEXT}',
'</div>',
'<div class="alert-controls">',
'<button>OK</button>',
'</div>',
'</div>',
'</div>'
].join(""),

Это чо за... А сразу строкой никак?

Octane 21.04.2012 21:20

так удобнее

melky 21.04.2012 23:46

Раед, уточню Ваш пост :
html: 
				'<div class="alert">\
					<div class="alert-shadow"></div>\
					<div class="alert-dialog">\
						<div class="alert-text">\
							{TEXT}\
						</div>\
						<div class="alert-controls">\
							<button>OK</button>\
						</div>\
					</div>\
				</div>',


так даже символов меньше.

Octane 21.04.2012 23:55

мне бы не дали покоя лишние отступы


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