jQuery multiselect плагин - asmSelect

2008/7/15 20:23 

Ни одна форма в HTML не вызывает столько затруднений у обычного пользователя, как <select multiple> — если есть необходимость выбрать из выпадающего списка боле одного значения. Что нажать — Ctrl или Shift, и где потом посмотреть выбранное? А как удалить, если выбрал не то?

Плагин jquery-asmselect очень упрощает процедуру выбора нескольких вариантов в списке, визуализируя выбор и облегчая управление:

  • Плагин делает выбор множества вариантов более удобными для пользователей. Пользователи знают, как взаимодействовать с ним без инструкции.
  • Для выбора нескольких элементов нет необходимости нажимать Ctrl или Shift. Вместо этого в форме можно выбрать или удалить элементы в индивидуальном порядке, без риска потерять те, что уже выбраны.
  • Выбранные элементы всегда видны (в пределах своего интерфейса), тогда как элементы списка всегда скрыты (в рамках выпадающего списка <select>).
  • В отличие от обычных списков с опцией <select multiple> , asmSelect позволяет менять порядок выбранных элементов перетаскиванием (эта часть требует jQuery UI).
  • аsmSelect легко встраивается в оригинал кода, так что переписывать код заново не потребуется, только подключить плагин и добавить соответствующие классы и стили.
  • Если у пользователя отключен javascript, он увидит обычный выпадающий список.
  • Если при загрузке страницы элемент <select multiple> будет изменен каким-либо другим jQuery или кодом javascript, изменение будет отражено в asmSelect.

jQuery multiselect plugin

На скриншоте вверху пойман момент удаления выбранного элемента. Также есть возможность настраивать внешний вид по своему вкусу — как обычным выпадающим списком, так и в виде скроллируемого контейнера с чекбоксами, или например в виде двух контейнеров – приемного и передающего.

Ненавязчивые сообщения с jQuery - jGrowl

2008/7/11 4:35 2

Иногда при взаимодействии с пользователем в рамках диалога появляется необходимость сказать ему пару слов - например, сделать предупреждение или уведомить о результате его действия. С этой работой успешно справляется функция java-script alert, но функционал этого серого окошка ограничен и не во всяком дизайне оно смотрится уместно. Есть много различных реализаций всплывающих окон в различных фреймворках, встречаем еще одну - jGrowl.

jGrowl - это плагин к jQuery, с помощью которого можно выводить ненавязчивые красивые сообшения на страницах веб-сайта. Внешний вид сообщений напоминает интерфейс OS X Growl Framework, авторы не стали заморачиваться с поиском подходящего имени для проекта. Скрипт очень удобный, с множеством настроек, внешний вид 100% настраиваемый, функционал богатый - в закрома!

jGrowl

Хвастаюсь

2008/7/2 21:8 6

Признаться, сразу и не догадался, что объявление «ПТИЧИЙ ХРЕН В БЕЛОМ НОСОРОГЕ» гласит о выступлении группы «Птичий хрен» в клубе «Белый носорог» ... ©bor.

Предыдущий абзац был должен обмануть бдительность противника, а сообщить я хотел, что наконец закончил переносить с Joomla на свою CMS очередного джумлострадальца - сайт киевской галереи современного искусства Ahouse.com.ua. Правда я сам был разочарован тем фактом, что современное искусство представлено в основном украинской живописью, однако встречаются замечательные вещи, например, «Торро» работы Николая Бутковского:

Торро

Что-то в последнее время все больше возвышенные заказы идут - галерея, хоумпага для певца, продюсерское агенство ... по закону подлости как только привыкну, опять валом попрет корпоратив и готы 0_о.

Как писать кросс-браузерный код

2008/6/28 15:57 6

После того, как вылизана последняя строчка функционального кода проекта, начинается дизайн. Точнее, начинаются танцы с бубном - ибо этот самый дизайн он многолик и непредсказуемо изменчив, если рассматривать его через разные браузеры. Достижение кросс-браузерности - очень трудоемкая и тяжелая в плане крепости психики работа, этой теме посвящены сотни статей, написаны сотни хаков для стилевых таблиц, но из этой троицы - семейства Mozilla, Opera и Internet Explorer хоть один, да доставит несколько неприятных часов при отладке сверстанного и утвержденного макета дизйна. «И в Safari чтобы проверили ...» добавляет свои пять копеек арт-директор. Ага, щаз, только сначала застрелюсь.

Тем не менее есть способ сэкономить огромное количество впустую потраченного времени, чур не плеваться: писать код правильно! Далее - краткий итог статьи How to get Cross Browser Compatibility Every Time - 10 правил кроссбраузерной верстки:

  1. При верстке используем strict doctype и standards-compliant HTML/CSS
  2. Начиная писать css-правила, обнуляйте дефолтные значения (приём, известный как reset)
  3. Используйте -moz-opacity:0.99 в текстовых элементах для Firefox, и text-shadow: #000 0 0 0 в Safari
  4. Никогда не переопределяйте размер изображений средствами CSS или HTML, используйте подготовленные картинки с нужными размерами
  5. Сразу проверяйте, как отображаются выбранные шрифты во всех браузерах. Не используйте Lucida
  6. Указывайте размер шрифтов, используя % и em
  7. Все плавающие слои должны иметь указания display:inline и overflow:hidden
  8. К статичным блокам долно быть применено overflow:auto и использован триггер hasLayout (что это такое - на хабре)
  9. Не используйте новые селекторы из спецификации CSS3
  10. Не используйте прозрачные PNG без специального фильтра для альфа прозрачности (.htc или IE7 например)

Как вставить ролик Youtube в TinyMCE

2008/6/28 3:27 3

Youtube.comНесколько раз натыкался на проблему с внедрением кода flash роликов с Youtube.com и других видеохостингов в CMS использующих TinyMCE. В старых версиях это невозможно даже через диалог вставки html-кода (вставленное просто исчезает после подтверждения), в новых версиях - 3 и выше есть опция вставки flash-содержимого, но приходится делать много лишних движений руками - вырезать кусок адреса, отдельно руками вписывать параметры ролика, морока. Я задумался - а изначально почему исчезает html-код?

TinyMCEОказывается, TinyMCE удаляет «недружественные» теги самостоятельно и без предупреждения. Это понятно, все-таки это редактор для текста и какой-никакой разметки, а не визуальный Frontpage, поэтому все теги, не относящиеся к тексту, ссылкам и объектам внутри текста (таблицам, картинкам) безжалостно удаляются. Но это же не прописано в «ядре» скрипта, есть возможность конфигурирования?

Я покопался в образцах настроек TinyMCE и обнаружил интересную строку в скрипте инициализации, на которую раньше не обращал внимания:

tinyMCE.init({
	// General options
	mode : "textareas",
	theme : "advanced",
	plugins : "preview,media",

	// Theme options
	theme_advanced_buttons1 : "bold,italic,underline...",
	theme_advanced_buttons2 : "",
	theme_advanced_buttons3 : "",	
	theme_advanced_toolbar_location : "top",
	theme_advanced_toolbar_align : "left",
	theme_advanced_statusbar_location : "bottom",
	theme_advanced_resizing : true,	
	extended_valid_elements : "a[href|target|...],img[src|alt|...]"
});

А вот последняя строка нас и интересует в данной ситуации - она дает скрипту список кошерных тегов, которые ни в коем случае нельзя удалять. Я модифицировал эту строку под свои нужды, добавив кусочек, перечисляющий теги используемые в flash-роликах:
object[width|height|param|embed],param[name|value],embed[src|type|width|height],

Экспериментировать было некогда, время поджимало, поэтому я так намудрил со вложенностью, наверняка можно упростить, у кого есть идеи - welcome в комментарии!