CSS 26    CSS3 10    HTML 2    JavaScript 43    Wordpress 3    Блог 12    Инструменты 1    Не советую 1    Полезные ресурсы 4    Счетчики 1    Шпаргалки 6    Зарегистрироваться 33   Войти

Меню

Добро пожаловать, Гость! Вы можете Войти или Зарегистрироваться.

19

Модальное окно на jQuery

Jemand 11222 ,
JavaScript

1. CSS

a {color: #333; text-decoration: none; font-size: 25px;}
a:hover {color:#ccc; text-decoration:none}
#mask {
	position:absolute;
	left:0;
	top:0;
	z-index:9000;
	background-color:#000;
	display:none;
	font-family: Georgia;
	}
#boxes .window {
	position:absolute;
	left:0;
	top:0;
	width:440px;
	height:200px;
	display:none;
	z-index:9999;
	padding:20px;
	text-align: center;
	font-size: 25px;
	}
#boxes #dialog {
	width:375px;
	height:203px;
	padding:10px;
	background-color:#ffffff;
	}
.close {
	float: right;
	margin-top: 148px;
	}

2. Подключение jQuery

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>

Данный код добавляем в раздел <head>
3. JavaScript

$(document).ready(function() {
	$('a[name=modal]').click(function(e) {
		e.preventDefault();
		var id = $(this).attr('href');
		var maskHeight = $(document).height();
		var maskWidth = $(window).width();
		$('#mask').css({'width':maskWidth,'height':maskHeight});
		$('#mask').fadeIn(1000);
		$('#mask').fadeTo("slow",0.8);
		var winH = $(window).height();
		var winW = $(window).width();
		$(id).css('top',  winH/2-$(id).height()/2);
		$(id).css('left', winW/2-$(id).width()/2);
		$(id).fadeIn(2000);
	});
	$('.window .close').click(function (e) {
		e.preventDefault();
		$('#mask, .window').hide();
	});
	$('#mask').click(function () {
		$(this).hide();
		$('.window').hide();
	});
});

Данный код, также, добавляем в раздел <head>, но после кода подключения jQuery.
4. HTML

<a href="#dialog" name="modal">Простое модальное окно</a>
<div id="boxes">
	<div id="dialog" class="window">
	Простое модальное окно <br>
	<span><a href="#" class="close"/>Закрыть его</a>
	</div>
	<div id="mask"></div>
</div>

Демо

Рекламная пауза

» 19 комментариев

  1. 30 июля 2011 15:02

    Thumb up 1  Thumb down0 1

    Окошко кул.А как сделать чтобы оно само открывалось при переходе на страницу,а не по нажатии на ссылку?

    • 1 августа 2011 14:43

      Thumb up 3  Thumb down+1 2

      Зачем это нужно? Только посетителей отпугивать.

  2. 25 декабря 2011 15:33

    Thumb up 0  Thumb down0 0

    как сделать чтобы в этом окне открывались внешние файлы .html?

  3. 29 декабря 2011 13:43

    Thumb up 0  Thumb down0 0

    как сделать чтоб php скрипт открывался ?

    • 29 декабря 2011 15:10

      Thumb up 2  Thumb down+2 0

      Засунуть скрипт в PHP страницу.

  4. 2 февраля 2012 10:44

    Thumb up 0  Thumb down0 0

    Повторю вопрос от adrc2 : “как сделать чтобы оно само открывалось при переходе на страницу,а не по нажатии на ссылку”. Опубликованный ответ “Зачем это нужно? Только посетителей отпугивать” глупый, т.к. не учитывает специфики сайтов. У меня на your-variant_ru сделан вызов модального окна справа “Задать вопрос”, но мне надо, что-бы оно АВТОМАТИЧЕСКИ выводилось через 10 секунд после загрузки страницы. Это как в бутике – к Вам подходит менеджер и спрашивает “Чем могу помочь?”.. Так и здесь – если посетитель задержался на странице – значит его что-то заинтересовало – тут и появляется этот вопрос, а если он быстро ушел – он окна и не увидит…
    Помогите советом в реализации этого, если это возможно, конечно. В инете ничего такого не нашел…

    • 2 февраля 2012 17:06

      Thumb up 0  Thumb down0 0

      Помочь я могу, но как-то уже не хочется, вдруг и этот ответ покажется Вам глупым.
      Дам лишь наводку – http://jemand.ru/ischezayushhij-cherez-n-sekund-blok-na-jquery

      • 2 февраля 2012 19:22

        Thumb up 0  Thumb down0 0

        Спасибо за ссылку. Уже более часа пытаюсь “привинтить” ее к коду – никак не получается. Я не очень знаком с jQuery, к сожалению… Жаль, что Вы так восприняли мое сообщение – меньше всего я хотел бы оскорбить Вас – примите мои извинения….
        И все-таки я надеюсь на Вашу помощь. Заранее спасибо…

        • 2 февраля 2012 19:44

          Thumb up 0  Thumb down0 0

          Принято :)
          Я постараюсь Вам помочь ближе к субботе, сейчас совершенно нет времени.

          • 2 февраля 2012 21:32

            Thumb up 0  Thumb down0 0

            Заранее спасибо :) Если не затруднит, известите по почте или по ICQ 448190667

          • 3 февраля 2012 18:04

            Thumb up 0  Thumb down0 0

  5. 4 февраля 2012 11:07

    Thumb up 0  Thumb down0 0

    … а еще лучше – сделайте, пожалуйста, пример “Выдвигающаяся панель при загрузке страницы с задержкой” и разместите на своем сайте.

  6. 16 февраля 2012 18:26

    Thumb up 0  Thumb down0 0

    этом случае окно всплывает на расстоянии, как я понял вот таком
    $(id).css(‘top’, winW/1-$(id).width()/2);
    в моем случае, когда ссылка на открытие окна находится в футере страницы получается, что модальное окно открывается сверху страницы и пользователю не видно ничего, кроме маски..
    подскажит, как сделать так, чтобы оно всегда открывалось посередине экрана,.. ну или хотябы на половину экрана снизу??.
    Спасибо

  7. 22 февраля 2012 23:34

    Thumb up 0  Thumb down0 0

    Почему диалоговое окно с темным фоном съехало на полэкрана?

    • 2 марта 2012 16:45

      Thumb up 0  Thumb down0 0

      У меня ничего не съехало. Опишите подробнее Вашу проблему.

  8. 10 марта 2012 19:12

    Thumb up 0  Thumb down0 0

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


Оставить комментарий