Самое простое использовать модуль Lightbox2
и конструкцию типа. Где MyCode.php твой всплывающий блок.
<a href="MyCode.php" rel="lightmodal">MyCode</a>
Но если хочешь занятся извращенным сексом, и поразбиратся в jQuery (соответственно при проверке примера эта библиотека доложна быть включена.) Если поставишь Lightbox2, то она подключается вместе с ним.
Вот пример на коленке с коментами, код ниже можно просто вставить в новый блок.
Использовал подобное здесь - нажми на меню поиск недвижимости справа, но там в блоке еще куча всего:
<script type="text/javascript"> //Вынес переменные за пределы функций, для удобства правки //id дива для затемнения. var bg_fon ="#backgroundPopup"; //id всплывающего дива var fly_block ="#fly_bl" //id зоны активации всплывающего окна var key_on ="#key_on" //id зоны закрытия всплывающего окна var key_off ="#key_off" //загружаем всплавающее окно function loadPopup(){ //черный прозрачный фон на сайт при необходимости, можно вписать неводимыл в шаблон, можно сделать // в функции predPopup, я не делал поэтому не описываю, если затенять сайт не надо то код связанный с #backgroundPopup // убираем.
$(bg_fon).css({ "opacity":"0.1" });
$(bg_fon).fadeIn("2000");
$(fly_block).fadeIn("slow"); } //отключаем окно function disablePopup(){
$(bg_fon).fadeOut("slow");
$(fly_block).fadeOut("slow"); }
function predPopup(){ //Вычисляем рабочюю зону экрана для расчетов (например чтобы плавающий блок по центру экрана разместить) var windowWidth = screen.availWidth; var windowHeight = screen.availHeight; //Посчитал размеры плавающего блока var popupWidth =200; var popupHeight =200;
//Далее настраиваем свои CSS селекторы на разные HTML - элементы. Можем добавить своих настроек.
$(fly_block).css({ "background":"#fff", "height": popupHeight, "width": popupWidth, "position":"absolute", "top": windowHeight*0.1, "left":"20px", "z-index":"10" });
jQuery(document).ready(function(){//все что внутри срабатывает только при готовности документа //прячу плавающий блок, можно вынести в CSS
$(fly_block).css({ "display":"none" });
jQuery(key_on).click(function(){// функция вызывается когда объект с id="#key_on" получил событие click //готовим окно
predPopup(); //выводим окно
loadPopup(); });
jQuery(key_off).click(function(){// функция вызывается когда объект с id="#key_off" получил событие click
disablePopup();// прячем блок }); //альтернотивное закрытие блока по ESC
$(document).keypress(function(event){ if(event.keyCode==27){
disablePopup(); } }); }); </script><?php //далее собственно блок ?>
<div><a id="key_on" title="Всплывающий блок" href="#">Открыть скрытый блок</a></div>
<div id="fly_bl">Прячущийся блок ---- <a id="key_off" title="закрыть" href="#">Х</a></div>
<div id="backgroundPopup"> </div>
реализовал я предложенное решение, но есть одна проблема - мой всплывающий блок не всегда поверх всего остального контента
а конкретно - когда я на странице с js-галереей открываю этот блок - он перекрывается моей галереей
Комментарии
jQuery - если успею сейчас примерчик сваяю. Готовый есть но там много не относящегося к вопросу.
Буду очень благодарен!!!
Самое простое использовать модуль Lightbox2
и конструкцию типа. Где MyCode.php твой всплывающий блок.
Но если хочешь занятся извращенным сексом, и поразбиратся в jQuery (соответственно при проверке примера эта библиотека доложна быть включена.) Если поставишь Lightbox2, то она подключается вместе с ним.
Вот пример на коленке с коментами, код ниже можно просто вставить в новый блок.
Использовал подобное здесь - нажми на меню поиск недвижимости справа, но там в блоке еще куча всего:
//Вынес переменные за пределы функций, для удобства правки
//id дива для затемнения.
var bg_fon = "#backgroundPopup";
//id всплывающего дива
var fly_block = "#fly_bl"
//id зоны активации всплывающего окна
var key_on = "#key_on"
//id зоны закрытия всплывающего окна
var key_off = "#key_off"
//загружаем всплавающее окно
function loadPopup(){
//черный прозрачный фон на сайт при необходимости, можно вписать неводимыл в шаблон, можно сделать
// в функции predPopup, я не делал поэтому не описываю, если затенять сайт не надо то код связанный с #backgroundPopup
// убираем.
$(bg_fon).css({
"opacity": "0.1"
});
$(bg_fon).fadeIn("2000");
$(fly_block).fadeIn("slow");
}
//отключаем окно
function disablePopup(){
$(bg_fon).fadeOut("slow");
$(fly_block).fadeOut("slow");
}
function predPopup(){
//Вычисляем рабочюю зону экрана для расчетов (например чтобы плавающий блок по центру экрана разместить)
var windowWidth = screen.availWidth;
var windowHeight = screen.availHeight;
//Посчитал размеры плавающего блока
var popupWidth = 200;
var popupHeight = 200;
//Далее настраиваем свои CSS селекторы на разные HTML - элементы. Можем добавить своих настроек.
$(fly_block).css({
"background" : "#fff",
"height": popupHeight,
"width": popupWidth,
"position": "absolute",
"top": windowHeight*0.1,
"left": "20px",
"z-index": "10"
});
$(bg_fon).css({
"background" : "#000",
"display" : "block",
"position": "absolute",
"top" : "0px",
"left" : "0px",
"height": "100%",
"z-index": "9",
"width": "100%"
});
}
jQuery(document).ready(function(){ //все что внутри срабатывает только при готовности документа
//прячу плавающий блок, можно вынести в CSS
$(fly_block).css({
"display": "none"
});
jQuery(key_on).click(function(){ // функция вызывается когда объект с id="#key_on" получил событие click
//готовим окно
predPopup();
//выводим окно
loadPopup();
});
jQuery(key_off).click(function(){ // функция вызывается когда объект с id="#key_off" получил событие click
disablePopup();// прячем блок
});
//альтернотивное закрытие блока по ESC
$(document).keypress(function(event){
if(event.keyCode==27){
disablePopup();
}
});
});
</script><?php //далее собственно блок ?>
<div><a id="key_on" title="Всплывающий блок" href="#">Открыть скрытый блок</a></div>
<div id="fly_bl">Прячущийся блок ---- <a id="key_off" title="закрыть" href="#">Х</a></div>
<div id="backgroundPopup"> </div>
Спасибо!!!
А qicktabs будет работать, в этом блоке? и это ajax или просто js display меняет?
дубль
Я использовал просто TABS
Меняет конечно JS, но как подтягивать то, чем заполнять блок - твое дело. Хоть и аяксом.
Добавь в loadPopup() -
хоть руками, дальше добавил старую
кнопоччку из дива - это по желанию"
+ $(fly_block).html());
2 HIgor1968 - супер!
Вот еще jQuery+Ajax примеры от Ромки.
в мемориз
Спасибо буду пробовать
в закладки
реализовал я предложенное решение, но есть одна проблема - мой всплывающий блок не всегда поверх всего остального контента
а конкретно - когда я на странице с js-галереей открываю этот блок - он перекрывается моей галереей
как сделать блок поверх всего контента?
а еще в некоторых браузерах(например, Опера) при открытии страницы этот блок раскрыт, и его никак не свернуть!
а как сделать чтобы блок показать за пределами содержимого сайта. идеально при ширине окна меньше 1200 не показывался вообще
"background" : "#fff",
"height": popupHeight,
"width": popupWidth,
"position": "absolute",
"top": windowHeight*0.1,
"left": (windowWidth-1024)/2+1024,
"z-index": "10"
});
как в скрипте написать чтобы он при смене ширины экрана не наехал на содержимое сайта (ширина сайта 1024)