Статьи

03.07.2015
jquery.formstyler.png

В данном плагине я объединил 3 своих предыдущих jQuery-плагина, плюс добавил возможность стилизации полей для отправки файлов. Таким образом, он позволяет стилизовать с помощью CSS следующие html-элементы:

  • раскрывающийся список <select>;
  • флажок <input type="checkbox">;
  • переключатель <input type="radio">;
  • поле для выбора файла <input type="file">.

Демонстрация работы плагина

Живые примеры можно посмотреть на отдельной странице. Стоит заметить, что при оформлении элементов форм не использовано ни одного изображения, только CSS.

Достоинства

  • Общее:

    • Простота оформления с помощью CSS.
    • При отключенном JavaScript отображаются стандартные элементы форм, т.е. их работоспособность не теряется.
    • Псевдоэлементы выводятся внутристрочно, т.е. повторяют свойство стандартных элементов.
    • Поддержка работы с динамически добавляемыми/изменяемыми элементами.
    • Поддержка атрибутов checked, selected, disabled.
    • Атрибуты class, id, data-*, title, указанные у оригинальных элементов форм, передаются в соответствующие псевдоэлементы (id передается с суффиксом, чтобы избежать дублирования).
    • Поддержка динамического добавления/изменения атрибутов class, id, data-*, title.
    • Поддержка сброса формы при нажатии на <input type="reset">.
    • Умеет «ловить» нажатие клавиши Tab и позволяет переключать элементы с клавиатуры.
    • Кроссбраузерность (все современные браузеры, а также IE8 и выше).
    • Поддержка валидации HTML5.
  • Для селектов:

    • Поддерживает атрибут multiple, т.е. позволяет выбирать несколько пунктов (мультиселект).
    • Поддерживает группировку элементов списка в селекте (тег <optgroup>).
    • Позволяет задать максимальную высоту для выпадающего списка (CSS-свойством max-height, либо через опцию selectVisibleOptions).
    • Поддерживает «умное позиционирование», т.е. не уходит за видимую часть страницы при открытии списка.
    • Поддержка поиска по пунктам одиночного селекта.
    • Поддержка замещающего текста (placeholder).
    • Автоматически подстраивает ширину, если она не указана.
    • Поддерживает прокрутку колесом мыши.

Недостатки

  • При использовании некоторых нестандартных шрифтов (например, Open Sans, подключенный с Google Fonts), неправильно определяется ширина псевдоселекта, в связи с чем текст пунктов обрезается. Это связано с тем, что шрифт применяется лишь после стилизации селекта плагином. Как вариант решения этой проблемы, можно сделать отложенный запуск скрипта:

    setTimeout(function() {
      $('input, select').styler();
    }, 100)
    

    Еще один вариант решения — использовать специальный скрипт, который переинициализирует плагин после окончания загрузки шрифта.

  • В Mac OS при переключении селекта с клавиатуры появляется нативный выпадающий список.

Скачать

Плагин «jQuery Form Styler»

Версия: 1.7 | Последнее обновление: 21.06.2015 | Страница на GitHub

Подключение плагина

Для работы плагина необходимо использовать jQuery не ниже версии 1.7.0.

  1. Подключите jQuery (если он еще не подключен), плагин и стили к нему, добавив следующие строки перед тегом </head>:

    <link href="путь_к_файлу/jquery.formstyler.css" rel="stylesheet" />
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="путь_к_файлу/jquery.formstyler.min.js"></script>
    
  2. Для активации плагина примените метод .styler к тегам, которые хотите стилизовать:

    (function($) {
    $(function() {
    
      $('input, select').styler();
    
    });
    })(jQuery);
    

Отключение плагина (метод destroy)

Если есть необходимость отвязать плагин от стилизованного элемента, то задействуйте метод destroy:

$('select').styler('destroy');

Динамическое изменение

При динамическом изменении элементов формы необходимо запустить триггер refresh, например:

$('button').click(function(e) {
  e.preventDefault();
  /* делаем чекбокс неактивным */
  $('input:checkbox').attr('disabled', true)
    /* обновляем состояние псевдочекбокса */
    .trigger('refresh');
});

При использовании сторонних плагинов, например, jQuery Validation, которые меняют атрибуты элементов формы, событие .trigger('refresh') необходимо запускать, используя setTimeout, иначе состояния псевдоэлементов не изменится. Пример с вышеуказанным плагином:

$('form').validate({
  invalidHandler: function() {

    setTimeout(function() {
      $('input, select').trigger('refresh');
    }, 1)

  }
});

Опции плагина

Большинство опции плагина можно переопределить для конкретного тега, указав ему соответствующий data-атрибут.

ОпцияПо умолчаниюОписаниеdata-атрибут
wrapperformобертка стилизуемых элементов
idSuffix-stylerсуффикс к атрибуту id, передаваемому от стилизуемого элемента
filePlaceholderФайл не выбрантекст по умолчанию в поле выбора файла (когда файл не выбран)data-placeholder
fileBrowseОбзор...текст кнопки у поля для выбора файлаdata-browse
selectPlaceholderВыберите...текст по умолчанию в одиночном селекте; отображается, когда у первой опции отсутствует значение: <option></option>data-placeholder
selectSearchfalseпоказывать поисковое поле в одиночном селекте (true — да, false — нет)data-search
selectSearchLimit10минимальное количество пунктов одиночного селекта, при котором показывать поискdata-search-limit
selectSearchNotFoundСовпадений не найденотекст сообщения о том, что нет пунктов, удовлетворяющих поискуdata-search-not-found
selectSearchPlaceholderПоиск...текст по умолчанию в поисковом полеdata-search-placeholder
selectVisibleOptions0количество отображаемых пунктов списка в простом селекте без прокруткиdata-visible-options
singleSelectzIndex100уровень слоя с псевдоселектомdata-z-index
selectSmartPositioningtrueумное позиционирование для выпадающего списка селекта:
true — работает вверх и вниз
false — работает только вниз
'-1' — позиционирование отключено
data-smart-positioning

Колбеки (callbacks)

НазваниеПо умолчаниюОписание
onSelectOpenedfunction() {}запускается при раскрытии списка селекта, целевой селект можно захватить через $(this)
onSelectClosedfunction() {}запускается при закрытии списка селекта, целевой селект можно захватить через $(this)
onFormStyledfunction() {}запускается после выполнения плагина

Пример использования:

(function($) {
$(function() {

  $('input, select').styler({
    fileBrowse: 'Выбрать',
    singleSelectzIndex: '999',
    onSelectOpened: function() {
      // к открытому селекту добавляется красная обводка
      $(this).css('outline', '3px solid red');
    }
  });

})
})(jQuery)

История изменений

Находится здесь.


Возврат к списку


0
Гость
replica christian louboutin heels are done withgiuseppe zanotti shoes any fastidious giuseppe zanottifervour and much much more girls have Giuseppe Zanotti Sneakers outlet for pursuing the most uptodate point. Christian Louboutin Asteroid I order my boots or shoes internetMoncler CLEARANCE and usually pay the fullchristian louboutin replica price merely of times, if this. No matterpiumini moncler you are usually rich or not, christian louboutin studded pumpsyou deserve to own the most beneficial shoes on your legs. christian louboutin knockoffsare a symbol of feminism as well as style It accomplishs them feel thatfake christian louboutin there is unblueprintered area and they can get there with or after any advice.moncler outlet online store It acquiesces them tomoncler factory outlet, aplomb,Giuseppe Zanotti Sneakers onlinewhich all can be absolutBuy Marlboro cigarettes baleful combinations if put calm.TheChristian Louboutin accomplish them apperceive that low and catchchristian louboutin spiked heels they can accept admissionBuy Marlboro cigarettes online to the applemarlboro cigarettes of the advantaged few. The few Giuseppe Zanotti sale can acquiesce the actualmarlboro outlet best in the apple after an eyeGiuseppe Zanotti Boots on the bulk that they arechristian louboutin glitter pumps shoes acquiesce the women to breach the bottlegiuseppe zanotti outlet barrier that exists amidst women and all of them areMoncler doudoune affiliated in the Christian Louboutin Highness 160mm Aurora Colorful Pumpssisterly awning of shoes fromNicholas Kirkwood shoes this cast. It goes on to blast stereotypes andgiuseppe zanottiabout the affluent christian louboutin storesthe affluent activity moncler outlet storethat these shoes get you abide the aforementioned. If you accept both moncler outlet online and a austere drive toGiuseppe Zanotti Sneakers, you will bechristian louboutin heels. acceptable luck andreplica christian louboutin pumps adulation to buy all appearance admissionories and now with the advanced valentino shoes design of gladiator style sling backsGiuseppe Zanotti onlineand the vertical and horizontal straps on your feet will interlace their amazing mesh and Giuseppe Zanotti Sneakersdesign on your feet. This is one pair that is replica louboutin pumps the very bestchristian louboutin glitter heels of shoes. Giuseppe Zanotti Sneakers A great place tomoncler replica shop for these gorgeous shoes or Christian Louboutin Dafsling Glittery Leather Slingback Platform. Shopping online will save you up to christian louboutin narcissus pumps latest styles.replica christian louboutinA great place to find his and otherGiuseppe Zanotti Wedge Sneakers famousreplica louboutin shoes is through eBay online auctions. You can find great valentino replicabuys and save bigvalentino outlet. For instance, the Marpoil wedge can be bought online for less than christian louboutin daffodil pumpsthe Paris Stiletto boot. Also, found online for less than .Giuseppe Zanotti Boots Look for the Very Prive pump online for .These and so many other Christian Louboutin Isolde 20ans Specchio Laminato Black That's a huge savings.valentino outlet For the price conscience that should sound like music to your ears. If you want to look good thenhttp://www.giuseppezanottis.cc.
Имя Цитировать 0
0
Гость
не работает в position: sticky
Имя Цитировать 0
Текст сообщения*
Защита от автоматических сообщений
Облако тегов
API array CSS facebook IT-биографии JavaScript jQuery Microsoft microsoft MySQL PC php seo SQL ssl twitter апокалипсис баг база данных бизнес битрикс Битрикс браузер веб-ресурс векторная графика графика дизайн единорог жены программистов звук ЗОЖ инстаграмм интернет-магазин инфографика искусство истории ит картинки клиент компьютер конец света конференция кроссбраузерность лень массивы метод Верле музыка мысли мышь объявления ОС отдых отцы и дети парнас ай ти парнас айти передача данных подростки посмеяться правописание причины лени программирование программист продвижение проект размер страницы разметка разработка разработка интернет-магазина разработчик веб-систем распознавание звука реклама русский язык сайт семантическая разметка семинар сертификат сисадмин скорость загрузки сайта слушать создание сортировка социальные сети творчество тестирование умные мысли цитаты яндекс
Последние комментарии

Наши клиенты

Контакты

ООО "Парнас"

420111
г. Казань, ул. Пушкина 18

Телефон :
8-843-236-6001
8-499-550-6001

Почта :
mail@parnas-it.com


скачать реквизиты

Политика в отношении обработки персональных данных 0+ © 2012-2021 "Парнас-АйТи"