Ajax Russia : Аякс по-русски

Свежие новости из мира IT

Archive for the 'CSS' Category

Протоменю - контекстное меню с Prototype

Хочу обратить ваше внимание на Proto.Menu. Это очень элегантный скрипт, основанный на JavaScript библиотеке Prototype, для создания контекстного меню.

Вот его основные достоинства:

  • Малый размер. 2 Кб (1.5 Кб в сжатом виде).
  • Если у пользователя отключен джаваскрипт, то страница работает без ошибок.
  • Работает во всех современных браузерах (в Опере надо нажимать Crtl + левая кнопка мыши).
  • Поддержка скинов.
  • Скорость. Меню создаётся один раз при загрузке страницы и только меняет координаты при клике.

На Proto.Menu в действии можно посмотреть по этому адресу. Нажмите правой кнопкой мыши в любом месте страницы.

Proto.Menu

No comments

Проверка форм с помощью Prototype

form validationПо заявкам читателей, сегодня напишу про проверку форм при помощи джаваскрипта. Формы это пожалуй самая важная часть на вэб сайте, ведь это чуть ли не единственный способ общения с посетителем. Поэтому во первых очень важно, чтобы посетителю было понятно как работать с формами, во вторых важно помочь пользователю, если ему всё таки что то не ясно и он ошибся при вводе данных.

Если пользователь ошибся при вводе данных - обязательно надо указать где именно он ошибся. Многие дизайнеры любят делать из сообщения об ошибке какое то произведение искусства и в конце концов пользователю не ясно, допустил ли он ошибку вообще. Программисты тоже иногда перебарщивают и выдают какой нибудь alert с сообщением типа “поле с id g234em1 заполнено неверно”. Сидишь после этого и думаешь, где же это поле g234em1.

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

Но хватит теории, и приступим к практике. Использовать мы будем, уже в который раз, Prototype, Scriptaculous и новый в этот раз Validation скрипт от Andrew Tetlaw.

Read more

3 comments

Script.aculo.us morph - красивые морфинг эффекты

script.aculo.us - web 2.0 javascriptМорфинг эффекты есть в Script.aculo.us уже некоторое время, но обратил я на них внимание только недавно, когда пытался написать фото слайдшоу на джаваскрипте. Мне нужно было, при нажатии на фотографию, увеличить и передвинуть её в сторону. И всё это передвижение должно происходить плавно, а не просто изменить размер и координаты.

Начал искать джаваскрипт библиотеки для анимации, и вспомнил что в Script.aculo.us, который я и так постоянно использую, уже есть всё, что мне надо. Называется эффект Morph, и сейчас я покажу как просто его использовать.

Read more

2 comments

Как подгрузить CSS при помощи Prototype

Не часто это бывает нужно, но иногда приходится подгружать CSS джаваскриптом. Например нужно выдавать браузерам разные версии CSS. В этом туториале мы сделаем простую HTML страничку, где CSS стиль загрузится через 5 секунд после открытия страницы в браузере.

Для этого "чуда" мы используем JavaScript библиотеку Prototype, с которой особенно хорошо знакомы все Ruby On Rails программисты . Конечно можно сделать всё, что я собираюсь показать, и стандартным джаваскритом, без дополнительных библиотек, но Prototype я хотел использовать по двум причинам. Во первых с прототайпом программировать удобнее, во вторых я хотел попробовать новую версию прототайпа, с его новым DOM Builder-ом.

Итак приступим.

Вот наш HTML. Ничего особенного в нём нет. Обратите внимание, что нигде нету ссылки на CSS файл.

HTML:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2.     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4.     <head>
  5.         <meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
  6.         <title>CSS стиль подгружается при помощи Javascript библиотеки - Prototype</title>
  7.         <!-- Для туториала нужен Prototype 1.6.0 -->
  8.         <script type="text/javascript" charset="utf-8" src="prototype.js"></script>
  9.     </head>
  10.     <body id="mybody">
  11.        
  12.         <h1>Привет, через 5 секунд мир станет ярче</h1>
  13.         <p>
  14.             CSS стиль подгружается при помощи Javascript библиотеки - Prototype.
  15.         </p>
  16.    
  17.     </body>
  18. </html>

А вот CSS который мы хотим загрузить через 5 секунд после открытия страницы. Этот стиль изменит цвет фона страницы на светло зелёный, или cucumber_shampoo.

CSS:
  1. #mybody {
  2.     background-color: #E1F5B0;
  3. }

Для этого напишем набольшой скрипт, который мы поместим в HEAD.

JavaScript:
  1. <script type="text/javascript" charset="utf-8">
  2.         // Следим за загрузкой страницы
  3.         Event.observe(window, 'load', function()
  4.         {
  5.             // Ставим таймер на 5 секунд
  6.             setTimeout(function()
  7.             {
  8.                 // Получаем элемент HEAD
  9.                 var head = $$('head')[0];
  10.                 // Создаём новый элемент LINK при помощи Prototype DOM-Builder
  11.                 var css = new Element('link', {type: 'text/css', rel: 'stylesheet', href: 'dynamic.css', media: 'screen'});
  12.                 // Добавим LINK в HEAD
  13.                 head.insert(css);
  14.             }, 5000);
  15.         });
  16.     </script>

Готовый результат можно посмотреть по этому адресу. Хочу ещё раз обратить ваше внимание на то, что версия прототайпа, использованная в туториале - 1.6.0 Release Candidate. С версией 1.5.1.1 скрипт скорее всего работать не будет.

Кто напишет в комментариях самый короткий JavaScript, который делает тоже самое, но без таймера - тот молодец :-)

1 comment

Сделай сам : красивые формы для поиска при помощи CSS

Формы для поиска есть пожалуй на любом вэб сайте, но в большинстве случаев они очень скучные и похожи друг на друга. Мне нравится когда html формы чем то отличаются от других. Поэтому сегодня я хочу представить вашему вниманию туториал от Брайана Рэйндэла.

Для туториала нам потребуется две картинки и несколько минут свободного времени.
background image for search
button for search

  1. HTML Markup
    Тут мы создаём DIV контейнер, в котором будет наша форма.

    HTML:
    1. <div id="search_box">
    2. <form id="search_form" method="post" action="/">
    3. <input type="text" id="s" value="Search" class="swap_value" />
    4. <input type="image" src="images/btn_search_box.gif" width="27" height="24" id="go" alt="Search" title="Search" />
    5. </form>
    6. </div>

  2. Добавляем CSS
    CSS:
    1. #search_box {
    2. width: 201px;
    3. height: 31px;
    4. background: url(bg_search_box.gif);
    5. }
    6. #search_box #s {
    7. float: left;
    8. padding: 0;
    9. margin: 6px 0 0 6px;
    10. border: 0;
    11. width: 159px;
    12. background: none;
    13. }
    14. #search_box #go {
    15. float: right;
    16. margin: 3px 4px 0 0;
    17. }

И - пожалуйста, форма для поиска готова:
Search field with CSS

3 comments

« Previous PageNext Page »