ݺߣ

ݺߣShare a Scribd company logo
Денис Завгородний,
веб-технолог, Digital-агентство AlterEGO
1997 год HTML 3.2
1999 год XHTML 4.01
<form>
1
2
3
Что делать?
4
● Ничего
● Ничего и ругать дизайнеров
● Стилизовать формы
5
6
CSS
● "Природно" для браузера
● Чистый и семантичный html
● Не требует js
● Стилизируется не все
● Не кроссбраузерно
+ -
7
JS + CSS
● Зоопарк браузеров
● Прикладной интерфейс
● Широкие возможности
● Много кода
● "Грязный" HTML
● Требуется поддержка js
+ -
8
А что с JS?
● Vanilla JS
● MooTools
● Prototype
● jQuery
...
● jNice
● Nice Forms
● Uniform
● jQuery checkbox
● Select Box Factory
● ikSelect
...
9
Как это работает?
● DOM элементы формы - "модель" данных
● Вспомогательный HTML - отображение
● Пользователь взаимодействует с
вспомогательными HTML элементами
● JS связующее звено
Требования
● Естественное поведение
● Максимальное покрытие зоопарка браузеров
● Гибкая настройка внешнего вида
● Стилизация мелочей
● Документация
● Единый инструмент (все в одном)
● Плюшки
10
11
И?
12
И...
● Расчитаны лишь на современные браузеры
● Стилизируют только определенные элементы
● Нет стилизации скрола для select
● При динамическом обновлении контента
"падают"
● Заброшены
● И вообще...
13
14
jClever умеет
● input[type=text]
● input[type=checkbox]
● select
● multyselect
● input[type=button]
● input[type=radio]
● input[type=file]
● texterea
● валидация форм
● темы оформления
● слежение за DOM
● API
15
Темы оформления
CSS темы в отдельных директориях
<link rel="stylesheet" type="text/css"
href="jCleverTemplate/alice/css/jClever.css" />
jCleverTemplate
alice
template 1
template ...
template n
images
css
16
Валидация и placeholder
Предустановленные типы валидации:
● isNumeric
● isString
● isAnyText
● isEmail
● isSiteURL
+ регулярные выражения
Пользовательские html шаблоны ошибок
17
Слежение за DOM
● Поддержка AJAX и обновления страницы
● Собственное событие обновления DOM
onDomChange
● Использование событий: DOMContentLoaded и др.
● Кроссбраузерная реализация
● Оптимизация скорости работы
18
Простая иницализация
jQuery(_form-selector_).jClever({
autoTracking: true,
autoInit: true
});
Возможность использования в одностраничных
приложениях и сайтах с изменением контента без
перезагрузки страницы
19
API
● Обновление формы (refresh)
● Включение/отключение элементов форм
● Управление select (раскрытие, выбор активного и т.д.)
● Изменение select (option)
● Управление checkbox и radio
● Добавление новых элементов к форме
● Метод destroy
...
20
А чем лучше?
● Свое, родное
● Поддержка AJAX и обновления DOM
● Стилизация раскрытого select
● Возможность стилизации scroll, отказ от системного
● Работает во всех поддерживаемых нами браузерах
● Единый инструмент с поддержкой и развитием
21
22
https://github.com/denis-zavgorodny/jClever
Спасибо :)
Денис Завгородний, AlterEGO
https://twitter.com/DenisZavgorodny

More Related Content

What's hot (19)

Павел Юрийчук - Разработка приложений под мобильные браузеры
Павел Юрийчук - Разработка приложений под мобильные браузерыПавел Юрийчук - Разработка приложений под мобильные браузеры
Павел Юрийчук - Разработка приложений под мобильные браузеры
UA Mobile
SQL. Django, начало
SQL. Django, началоSQL. Django, начало
SQL. Django, начало
pelid
Инструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важныИнструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важны
CodeFest
knockout.js
knockout.jsknockout.js
knockout.js
Anton Patrushev
Изоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесьИзоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесь
CodeFest
Olesya Prokopenko. FlexBox. Future of the slicing
Olesya Prokopenko. FlexBox. Future of the slicingOlesya Prokopenko. FlexBox. Future of the slicing
Olesya Prokopenko. FlexBox. Future of the slicing
DrupalSib
Александр Кашеверов - Коротко про WEB
Александр Кашеверов - Коротко про WEBАлександр Кашеверов - Коротко про WEB
Александр Кашеверов - Коротко про WEB
DataArt
#4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов
#4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов#4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов
#4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов
JSib
Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)
Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)
Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)
Ontico
Оживление сайтов
Оживление сайтовОживление сайтов
Оживление сайтов
MageCloud
Разработка небольшого проекта c BEM и node.js — Сергей Пузанков
Разработка небольшого проекта c BEM и node.js — Сергей ПузанковРазработка небольшого проекта c BEM и node.js — Сергей Пузанков
Разработка небольшого проекта c BEM и node.js — Сергей Пузанков
Yandex
Суперсилы Chrome developer tools
Суперсилы Chrome developer toolsСуперсилы Chrome developer tools
Суперсилы Chrome developer tools
2ГИС Технологии
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Ontico
Node
NodeNode
Node
Юрій Кучма
HTML. Быстрое погружение. Влад Савицкий
HTML. Быстрое погружение. Влад СавицкийHTML. Быстрое погружение. Влад Савицкий
HTML. Быстрое погружение. Влад Савицкий
Vlad Savitsky
AngularJS
AngularJSAngularJS
AngularJS
GetDev.NET
Компонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективноКомпонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективно
Roman Dvornov
Mobile Web Apps development essentials
Mobile Web Apps development essentialsMobile Web Apps development essentials
Mobile Web Apps development essentials
Pavlo Iuriichuk
Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1
dima_kuzovlev
Павел Юрийчук - Разработка приложений под мобильные браузеры
Павел Юрийчук - Разработка приложений под мобильные браузерыПавел Юрийчук - Разработка приложений под мобильные браузеры
Павел Юрийчук - Разработка приложений под мобильные браузеры
UA Mobile
SQL. Django, начало
SQL. Django, началоSQL. Django, начало
SQL. Django, начало
pelid
Инструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важныИнструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важны
CodeFest
Изоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесьИзоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесь
CodeFest
Olesya Prokopenko. FlexBox. Future of the slicing
Olesya Prokopenko. FlexBox. Future of the slicingOlesya Prokopenko. FlexBox. Future of the slicing
Olesya Prokopenko. FlexBox. Future of the slicing
DrupalSib
Александр Кашеверов - Коротко про WEB
Александр Кашеверов - Коротко про WEBАлександр Кашеверов - Коротко про WEB
Александр Кашеверов - Коротко про WEB
DataArt
#4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов
#4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов#4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов
#4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов
JSib
Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)
Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)
Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)
Ontico
Оживление сайтов
Оживление сайтовОживление сайтов
Оживление сайтов
MageCloud
Разработка небольшого проекта c BEM и node.js — Сергей Пузанков
Разработка небольшого проекта c BEM и node.js — Сергей ПузанковРазработка небольшого проекта c BEM и node.js — Сергей Пузанков
Разработка небольшого проекта c BEM и node.js — Сергей Пузанков
Yandex
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Ontico
HTML. Быстрое погружение. Влад Савицкий
HTML. Быстрое погружение. Влад СавицкийHTML. Быстрое погружение. Влад Савицкий
HTML. Быстрое погружение. Влад Савицкий
Vlad Savitsky
Компонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективноКомпонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективно
Roman Dvornov
Mobile Web Apps development essentials
Mobile Web Apps development essentialsMobile Web Apps development essentials
Mobile Web Apps development essentials
Pavlo Iuriichuk
Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1
dima_kuzovlev

Similar to Сделай дизайнеру приятно: Красивые веб-формы (20)

Быстро о быстром
Быстро о быстромБыстро о быстром
Быстро о быстром
Roman Dvornov
DOM-шаблонизаторы – не только "быстро"
DOM-шаблонизаторы – не только "быстро"DOM-шаблонизаторы – не только "быстро"
DOM-шаблонизаторы – не только "быстро"
Roman Dvornov
Tizen Mobile Application Lifecycle by Kirill Danilov
Tizen Mobile Application Lifecycle by Kirill DanilovTizen Mobile Application Lifecycle by Kirill Danilov
Tizen Mobile Application Lifecycle by Kirill Danilov
MoscowJS
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
Stanfy
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)
Ontico
django cheBit'11
django cheBit'11django cheBit'11
django cheBit'11
dva
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TKConf
Знакомство с Tizen
Знакомство с TizenЗнакомство с Tizen
Знакомство с Tizen
Iurii Ageev
Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...
Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...
Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...
Ontico
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Ontico
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
Krivoy Rog IT Community
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Компонентная разработка на Stylus, Jade, Typescript - Леонид ШирмановКомпонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
MoscowJS
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter..."Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
MoscowJS
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Ontico
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012
InTRUEdeR
Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5
DevDay
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
HappyDev
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
e-Legion
Быстро о быстром
Быстро о быстромБыстро о быстром
Быстро о быстром
Roman Dvornov
DOM-шаблонизаторы – не только "быстро"
DOM-шаблонизаторы – не только "быстро"DOM-шаблонизаторы – не только "быстро"
DOM-шаблонизаторы – не только "быстро"
Roman Dvornov
Tizen Mobile Application Lifecycle by Kirill Danilov
Tizen Mobile Application Lifecycle by Kirill DanilovTizen Mobile Application Lifecycle by Kirill Danilov
Tizen Mobile Application Lifecycle by Kirill Danilov
MoscowJS
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
Stanfy
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)
Ontico
django cheBit'11
django cheBit'11django cheBit'11
django cheBit'11
dva
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TKConf
Знакомство с Tizen
Знакомство с TizenЗнакомство с Tizen
Знакомство с Tizen
Iurii Ageev
Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...
Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...
Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...
Ontico
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Ontico
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
Krivoy Rog IT Community
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Компонентная разработка на Stylus, Jade, Typescript - Леонид ШирмановКомпонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
MoscowJS
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter..."Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
MoscowJS
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Ontico
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012
InTRUEdeR
Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5
DevDay
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
HappyDev
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
e-Legion

Сделай дизайнеру приятно: Красивые веб-формы

  • 2. 1997 год HTML 3.2 1999 год XHTML 4.01 <form> 1
  • 3. 2
  • 4. 3
  • 6. ● Ничего ● Ничего и ругать дизайнеров ● Стилизовать формы 5
  • 7. 6 CSS ● "Природно" для браузера ● Чистый и семантичный html ● Не требует js ● Стилизируется не все ● Не кроссбраузерно + -
  • 8. 7 JS + CSS ● Зоопарк браузеров ● Прикладной интерфейс ● Широкие возможности ● Много кода ● "Грязный" HTML ● Требуется поддержка js + -
  • 9. 8 А что с JS? ● Vanilla JS ● MooTools ● Prototype ● jQuery ... ● jNice ● Nice Forms ● Uniform ● jQuery checkbox ● Select Box Factory ● ikSelect ...
  • 10. 9 Как это работает? ● DOM элементы формы - "модель" данных ● Вспомогательный HTML - отображение ● Пользователь взаимодействует с вспомогательными HTML элементами ● JS связующее звено
  • 11. Требования ● Естественное поведение ● Максимальное покрытие зоопарка браузеров ● Гибкая настройка внешнего вида ● Стилизация мелочей ● Документация ● Единый инструмент (все в одном) ● Плюшки 10
  • 13. 12 И... ● Расчитаны лишь на современные браузеры ● Стилизируют только определенные элементы ● Нет стилизации скрола для select ● При динамическом обновлении контента "падают" ● Заброшены ● И вообще...
  • 14. 13
  • 15. 14 jClever умеет ● input[type=text] ● input[type=checkbox] ● select ● multyselect ● input[type=button] ● input[type=radio] ● input[type=file] ● texterea ● валидация форм ● темы оформления ● слежение за DOM ● API
  • 16. 15 Темы оформления CSS темы в отдельных директориях <link rel="stylesheet" type="text/css" href="jCleverTemplate/alice/css/jClever.css" /> jCleverTemplate alice template 1 template ... template n images css
  • 17. 16 Валидация и placeholder Предустановленные типы валидации: ● isNumeric ● isString ● isAnyText ● isEmail ● isSiteURL + регулярные выражения Пользовательские html шаблоны ошибок
  • 18. 17 Слежение за DOM ● Поддержка AJAX и обновления страницы ● Собственное событие обновления DOM onDomChange ● Использование событий: DOMContentLoaded и др. ● Кроссбраузерная реализация ● Оптимизация скорости работы
  • 19. 18 Простая иницализация jQuery(_form-selector_).jClever({ autoTracking: true, autoInit: true }); Возможность использования в одностраничных приложениях и сайтах с изменением контента без перезагрузки страницы
  • 20. 19 API ● Обновление формы (refresh) ● Включение/отключение элементов форм ● Управление select (раскрытие, выбор активного и т.д.) ● Изменение select (option) ● Управление checkbox и radio ● Добавление новых элементов к форме ● Метод destroy ...
  • 21. 20 А чем лучше? ● Свое, родное ● Поддержка AJAX и обновления DOM ● Стилизация раскрытого select ● Возможность стилизации scroll, отказ от системного ● Работает во всех поддерживаемых нами браузерах ● Единый инструмент с поддержкой и развитием
  • 22. 21