Archive for the 'Prototype' Category
Prototype 1.6.0 RC1
Создатели Prototype решили не отставать от Script.aculo.us и выпустили Release Canditate 1. Два месяца, после выпуска rc0, они трудились, исправляли баги и добавляли новые функции. Изменений, как всегда, немало:
Script.aculo.us 1.8 BETA
Thomas Fuchs объявил о новой версии этой популярной джаваскрипт библиотеки на своём блоге. В принципе это даже не beta релиз, а так называемый “preview”, который знакомит разработчиков с новыми функцияами script.aculo.us. В релизе есть на что посмотреть:
- Теперь script.aculo.us работает на основе Prototype 1.6.0
- Полностью переделаны Ajax.InPlaceEditor и Ajax.InPlaceCollectionEditor.
- Полное наследование эффекта Morph от CSS.
- Новый “core” эффект Effect.Tween.
- Поддержка звуковых эффектов (mp3). Использует родные возможности IE, или установленные плагины, где это возможно.
- Улучшена скорость работы.
- Куча исправленных багов.
Остальные подробности можно прочитать в CHANGELOG.
Thomas также заявил, что после финального релиза 1.8, он “заморозит” разработку. Никаких новых функций добавляться не будет, и будут только исправления багов. Новые функции появятся в версии script.aculo.us 2.0, но пока неизвестно когда же эта версия выйдет. (Я очень надеюсь, что вместе с релизом Ruby on Rails 2.0
)
ModalBox - модальные диалоги на джаваскрипте
Поднимите руку, кто терпеть не может функцию alert(). Я отучился от этой заразы после того, как начал использовать firebug. В этом плагине есть замечательная функция:
-
console.log(some_variable);
которая выдаст нужную переменную на консоль. Кто ещё использует alert для отладки своих скриптов - милости прошу на эту страницу.
Но alert не всегда используется для отладки сайтов. Вместе с функцией confirm, его используют для донесения какой нибудь важной информации до посетителя. Информации настолько важной, что это окно с информацией должно быть модальным. Я ничего не имею против модальных диалогов, но alert или confirm считаю старомодными. Никак такие окошки не увязываются с современными дизайнами сайтов.
Поэтому сегодня я покажу вам, как сделать обалденный модальный диалог с помощью ModalBox. Полный комплект можно скачать по этому адресу.
- Установка
Подгружаем джавасктипт и CSS
HTML:-
<script type="text/javascript" src="includes/prototype.js"></script>
-
<script type="text/javascript" src="includes/scriptaculous.js?load=builder,effects"></script>
-
<script type="text/javascript" src="includes/modalbox.js"></script>
-
<link rel="stylesheet" href="includes/modalbox.css" type="text/css" media="screen" />
-
- Использование
Как параметр к ModalBox можно дать ссылку на другую HTML страницу, или id DOM элемента
JavaScript:-
// откроет message.html в модальном окне
-
Modalbox.show("/message.html", {title: this.title, width: 600});
-
-
// покажет содержимое элемента с id="message" в модальном окне
-
Modalbox.show($('message'), {title: this.title, width: 300});
-
Про другие параметры и примеры использования можно почитать на страничке Андрея Оконечникова.
Напоследок предлагаю потестировать модальный диалог, нажав на эту ссылку:
ModalBox Demo
15 commentsАккордеон 2.0
Кевин Миллер выпустил новую версию своего скрипта Аккордеон. Библиотека основана на базе Prototype и Scriptaculous и работает по моему лучше чем аккордеон от jQuery UI. Ни в коем случае не хочу обидеть фанатов jQuery.
Новые функции в версии 2.0:
- Активный аккордеон будет закрываться при нажатии на заголовок.
- Возможность делать аккордеоны в аккордеоне.
- Аккордеон динамически изменяет размер, в зависимости от содержимого.
- Исправлены многие баги.
Как использовать:
-
Добавляем джаваскрипт
HTML:
- Добавляем HTML
- Применяем скрипт
JavaScript:
-
var verticalAccordion = new accordion('#vertical_container');
-
Подробнее о дополнительных параметрах к функции можно посмотреть на страничке автора. Там же сразу есть и рабочий пример скрипта.
4 commentsКак добавить свои функции к любому DOM элементу
Я уже писал ранее про эффекты при помощи Prototype и Script.aculo.us. Обычно, чтобы применить к элементу эффект, надо вызвать одну из функций класса Effect и как параметр передать id элемента, например:
-
Effect.Pulsate('element-id');
Может кому то этого и хватает, но мне нравится другой подход, а именно:
-
$('element-id').pulsate();
Читать такой код гораздо удобнее, и можно делать цепочку из функций, например $('element-id').pulsate().shake().fade(). Единственная проблема - таких функций у dom элементов нет и если попытаться их запустить, то браузер выдаст ошибку. Не беда. У Prototype есть удобный механизм для создания своих функций. В этом туториале я покажу как написать функцию shake().
Сначала надо добавить нужную функцию в хэш Element.Methods и затем вызвать Element.addMethods().
-
Element.Methods.shake = function(element)
-
{
-
new Effect.Shake(element);
-
return element;
-
}
-
Element.addMethods();
Готово. Теперь можно вызывать функцию shake у любого DOM элемента. Попробуем на примере. Сделаем картинку и при нажатии на неё запустим shake().
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
<html xmlns="http://www.w3.org/1999/xhtml">
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-
<title>Еxtend element methods with prototype</title>
-
<script src="prototype.js" type="text/javascript"></script>
-
<script src="effects.js" type="text/javascript"></script>
-
<script type="text/javascript" charset="utf-8">
-
// <![CDATA[
-
Element.Methods.shake = function(element)
-
{
-
new Effect.Shake(element);
-
return element;
-
}
-
Element.addMethods();
-
-
// ждём загрузки html
-
document.observe('contentloaded', function()
-
{
-
// следим за кликом по картинке
-
$('shake-this').observe('click', function()
-
{
-
// this это элемент по которому кликнули
-
this.shake();
-
})
-
})
-
-
// ]]>
-
</script>
-
</head>
-
-
<img src="reflect-this.jpg" alt="test" id="shake-this" />
-
</body>
-
</html>
Посмотреть результат можно по этому адресу: Туториал - Как добавить свои функции к любому DOM элементу.
No comments