Каталог Java скриптов!Онлайн сервисов!Всё для Веб-мастера!

Добавить в избранное

Вход
На сайте
Всего: 1
Гостей: 1
Пользователей: 0
Главная » 2009 » Март » 23 » Создание лайтбоксов с использованием Ajax
Создание лайтбоксов с использованием Ajax
9:45:25 AM

Подсказки

Использовать строку состояния в браузере довольно просто, создать же что-то более эффективное — например, всплывающую подсказку —несколько сложнее. Чтобы упростить себе жизнь, можно использовать специальную библиотеку для создания подсказок (tooltip.js), бесплатно доступную в сети и работающую на базе замечательной JavaScript-библиотеки Prototype.js.

Пример кода:

<html>
<head>
<script src="prototype.js" type="text/javascript"></script>
<script src="tooltip.js" type="text/javascript"></script>
<style>
body { font-family: arial,verdana; }
.popup { padding:10px; border:1px solid #ccc;
 background:#eee; width:250px; font-size: small; }
</style>
</head>
<body>
<div id="book1">Code Generation In Action</div>
<div id="popup1" class="popup">
</div>
</body>
<script type="text/javascript">
new Ajax.Updater( 'popup1', 'text.php' );
new Tooltip('book1', 'popup1')
</script>
</html>


Сначала страница, используя метод Ajax.Updater библиотеки Prototype.js, выполняет Ajax-вызов для обновления содержимого подсказки, а затем с помощью класса Tooltip одноимённой библиотеки эта подсказка привязывается к тегу <div>, с id="book1".


Если теперь открыть страницу в браузере, то мы увидим что-то вроде



И если навести мышку на этот текст, появится небольшое всплывающее окошко:



Посмотрите наглядный online-пример всплывающей подсказки .

Всплывающие подсказки - это простой способ «разгрузить» страницу и в тоже время сохранить возможность доступа к контенту, если он вдруг понадобится посетителям страницы. Если пользователь хочет получить дополнительные сведения о каком-то элементе сайта, он может просто навести на него указатель мыши, и появится подсказка с более детальной информацией. Причём эта информация может иметь произвольно сложную структуру, содержать картинки, таблицы и форматирование.




Лайтбоксы

Лайтбоксы – это новый и наиболее оригинальный способ обратить внимание пользователя на какой-то конкретный элемент. Так, в нижеприведённом примере, страница содержит уменьшенную картинку (thumbnail), при щелчке на которую появляется "лайтбокс" с полноразмерным изображением.

Для создания этого эффекта используется замечательная библиотека Lightbox JS 2.0, которая также работает на Prototype.js.

Пример кода:

<html>
<head>
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
<script src="js/prototype.js" type="text/javascript"></script>
<script src="js/scriptaculous.js?load=effects" type="text/javascript"></script>
<script src="js/lightbox.js" type="text/javascript"></script>
</head>
<body>
<a href="images/megan1_400_320.jpg" rel="lightbox">
<img src="images/megan1_400_320.jpg" width="100" height="80"
 alt="Megan" border="0" /></a>
</body>
</html>


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



Но если вы щелкнете по ней мышью, то увидите полноразмерное изображение, изящно размещённое в центре окна, как показано на рисунке:



пример использования лайтбокса .

Что ещё лучше – весь материал, находящийся под лайтбоксом, затеняется, так что ваш взгляд теперь целиком обращён на содержимое в центре экрана.


Ничего страшного, если вы не знакомы с термином «лайтбокс» («lightbox»). Этот таинственный термин используется в фотографических кругах. В доцифровые времена фотографы называли лайтбоксом коробку примерно 15 см глубиной и около 60 см шириной по обеим сторонам, со специальным белым прозрачным пластиком сверху. Источник света изнутри равномерно освещал эту поверхность. Разместив на лайтбоксе какой-нибудь слайд или негатив и воспользовавшись специальной лупой (которая на самом деле была обычным увеличительным стеклом), вы могли внимательно рассмотреть каждую отдельную картинку. Можно представить, что лайтбокс на рисунке 4 - это тоже фотография, которую вы рассматриваете на лайтбоксе через лупу. Вот такой термин.

Но что произойдёт, если вместо картинки вы захотите подсветить какой-нибудь текст?

Текстовый лайтбокс

Другой вариант реализации лайтбокса был применён на сайте под названием Particle Tree. Там была осуществлена возможность отображения сколь угодно сложного HTML-кода, полученного с сервера при помощи Ajax. Я пользуюсь этим средством, когда нужно показать пользователю какой-нибудь дополнительный текст.

Код главной страницы.

  
<html>
<head>
<title>
Lightbox Text Test
</title>
<link rel="stylesheet" href="css/default.css" media="screen,projection" type="text/css" />
<link rel="stylesheet" href="css/lightbox.css" media="screen,projection"
 type="text/css" />
<script type="text/javascript" src="scripts/prototype.js"></script>
<script type="text/javascript" src="scripts/lightbox.js"></script>
</head>
<body>
<a href="text.php" class="lbOn">More About This Article</a>
</body>
</html>



Если открыть этот код в браузере, то можно увидеть такую страницу:


Если вы щелкнете мышью по тексту, то увидите лайтбокс с содержимым страницы, как показано на рисунке:



пример  текстового лайтбокса .

Текстовый лайтбокс - это отличный способ предоставить пользователю дополнительную информацию о продукте или статье из списка, не требующий покидать страницу. Вместо этого вы используется обходной путь предоставления пользователю дополнительной информации. Как в любом HTML-коде, здесь может быть текст, картинки или даже формы – для регистрации, аутентификации или комментариев.




Окна

В предыдущем примере я упомянул об использовании лайтбоксов для отображения форм, однако лайтбокс - это не совсем то, что пользователь ожидает увидеть, когда он работает с формой. А ожидает он на самом деле окно. К счастью, в библиотеке Prototype есть превосходная реализация окон с большим набором разнообразных оформлений, благодаря чему вы сможете создавать любые окна, какие пожелаете.

Ajax-запросы, использующиеся для получения информации, которая должна быть отображена в рамке окна, также реализуются через библиотеку Prototype. Начнём:

<html>
<head>
<script type="text/javascript" src="javascripts/prototype.js"></script>
<script type="text/javascript" src="javascripts/effects.js"></script>
<script type="text/javascript" src="javascripts/window.js"></script>
<script type="text/javascript" src="javascripts/window_effects.js"></script>

<link href="themes/default.css" rel="stylesheet" type="text/css" ></link>
<link href="themes/spread.css" rel="stylesheet" type="text/css" ></link>
</head>
<body>
<a href="javascript:void showWindow();">Show Window</a>
<script>
function showWindow()
{
 win = new Window( { className: 'spread', url: 'test.html',
 title: 'Simple Window', width:400,
 height:300, destroyOnClose: true, recenterAuto:false } );
 win.showCenter();
}
</script>
</body>
</html>



Здесь при щелчке по кнопке Show window JavaScript-код создаёт новое окно заданной ширины, высоты, с назначенным заголовком и содержимым, полученным с заданного URL, и отображает его в центре окна браузера с помощью метода showCenter().

Далее приведен HTML-код, который должен быть отображён в окне.

  <h1>Registration</h1>
<p>You need to first register the product before...
</p>

Открыв index.html в браузере, мы увидим следующее:



Пока здесь почти не на что смотреть, но если кликнуть на ссылку, то увидим наше окно:


пример создания окна .

Окошко выглядит пресновато, но определённо привлекает к себе внимание. Совершенно не обязательно делать его зелёным - можно выбрать любой другой скин.





Плавно появляющиеся сообщения

Существует ещё один новый способ взаимодействия с пользователями — это плавно появляющиеся сообщения — сообщения, возникающие в заранее неизвестном пользователю, но хорошо видном месте, сообщая о каком-то важном событии. В данном случае для реализации плавно появляющегося сообщения используется библиотека эффектов Scriptaculous, которая также работает на Prototype.js.

Начнём с html-страницы

  
<html><head>
<style>
.alert {
opacity: 0.0;
border:2px dashed black;
padding:5px;
background:#eee;
font-family: arial, verdana;
font-weight: bold; }
</style>
<script src="lib/prototype.js"></script>
<script src="src/effects.js"></script>
<script>
function submit()
{
new Ajax.Updater( 'result', 'alert.html', {
method: 'get',
onSuccess: function() {
new Effect.Opacity('result',
{ duration: 2.0, from: 0.0, to: 1.0 } );
new Effect.Opacity('result',
{ delay: 10.0, duration: 2.0, from: 1.0, to: 0.0 } );
} }
);
}
</script>
</head><body>
<div id="result" class="alert"></div><br/><br/>
<button onclick="submit()">Submit</button>
</body></html>


В идеале на странице расположена некая форма с кнопкой Submit для подтверждения. И когда пользователь на неё нажимает, данные из формы отправляются на сервер, который, в свою очередь, генерирует соответствующее ответное сообщение. Это сообщение затем плавно появляется на экране и через некоторое время также плавно исчезает. В данном примере я опустил элементы формы, так что мы увидим только кнопку подтверждения.

Кнопка Submit отправляет Ajax-запрос на страницу alert.html. Полученные данные затем помещаются внутри тега <div> с id="result", плавное появление и исчезновение которого реализуется классами эффектов библиотеки Scriptaculous.

Открыв эту страницу в браузере, мы увидим что-то вроде:

И снова нам пока особо не на что смотреть. Представьте, что над кнопкой Submit расположены поля формы с какими-то данными.

При нажатии на Submit плавно появляется сообщение.



пример плавно появляющегося сообщения .

Это не только простой, но и эффективный способ взаимодействия с пользователями. Если не злоупотреблять этим приёмом, появляющиеся и исчезающие объекты на вашей странице будут вызывать у пользователя острое желание получить информацию. Это связано с инстинктом выживания, передающимся из поколения в поколение. Так что вашей информации обязательно будет уделено внимание. Пока этот приём используется правильно, он является мощным средством быстрого привлечения внимания пользователя.





Загрузить библиотеку  x-ajaxxml6-lightbox.zip


Просмотров: 2520 | Добавил: scriptozna | Рейтинг: 5.0/1 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Топ статьи


  Рекомендуем
АнтеБаннер
Сервисы для веб-мастера
Windows DI
Заработок для вебмастера
Все для веб-мастера
Фотообои
Шокирующие фото

Рейтинг@Mail.ru Rambler's Top100
Хостинг от uCoz