Простий блок, що випадає, оверлей з jQuery

Випадаючий блок

Простий блок, що випадає, після кліка по заданому елементу, оверлей з jQuery.

Загалом уже є велика кількість плагінів в яких реалізований зручний оверлей, наприклад:

  • «галерейний» плагін FancyBox
  • FaceBox - "фейсбуківський" лайтбокс
  • jQuery Tools Overlay
  • чисто-джаваскриптове потужне рішення Highslide.js
  • Ну і практично у всіх галереях jQuery

Але про них і потім можна поговорити

А зараз спробуємо самі написати простий сніпет, що реалізує випадаючий блок з оверлеєм.

Отже, по-перше, представимо майбутню структуру:

випадає

Припустимо вже є якась конструкція (верстка) в якій передбачений клікабельний елемент, після кліка по якому буде з'являтися прихований блок. Напишемо html-розмітку цього блоку:

div class ="overlay" id ="overlay" style ="display:none;" > div > div class = "nonebox" id = "nonebox"> a class ="box-close" id ="box-close"> a > h1 > Заголовок h1 > p > Якийсь контент. Звичайний текст і т.д. p > div >

Тепер запишемо правила для розмітки:

1) Насамперед опишемо фоновий блок:

  1. .overlay
  2. background: transparent url(images/overlay.png) repeat top left;
  3. position :fixed; /* фіксуємо і далі розтягуємо на весь екран*/
  1. top: 0px;
  2. bottom: 0px;
  3. left: 0px;
  4. right: 0px;
  5. z-index: 100; /* піднімемо його вище за основну розмітку*/
  6. >

2) Правила для випадаючого блоку:

  1. .nonebox
  2. position: fixed;
  3. top: -300px;
  4. left: 35%;
  5. right: 35%;
  6. background: #fff;
  7. color: #4d4d4d;
  8. padding: 20px;
  9. border: 5px sol & padding: 25px;
  10. z-index: 101; /* а його вище за фоновий блок*/
  11. >

3) І ще є елемент після кліку по якому наш блок закриватиметься:

  1. a.box-close
  2. float: right;
  3. width: 26px;
  4. height: 26px;
  5. background: url('images/close.png') repeat top left;;
  6. margin: -30px -30px 0px 0px;
  7. cursor: pointer;
  8. >

Javiscript (jQuery)

Тепер найцікавіше – джаваскрипт.

Як завжди: а) Підключаємо jQuery.js; б) Пишемо невеликий сніпет ↓

Дехто каже, що в IE не працює. У прикладі, що скачується, не вказаний доктайп, для IE його, звичайно ж, треба вказувати, наприклад: