Домашня » Кодування » Як налаштувати і Темінг JQuery UI Datepicker

    Як налаштувати і Темінг JQuery UI Datepicker

    Інтерфейс jQuery просто приголомшливий і завдяки простоті використання він користується популярністю і широко використовується практично на будь-якому веб-сайті, який потребує інтерактивних функцій.

    І в цій публікації ми розглянемо одну з функцій, що надаються, віджет Datepicker.

    Ми спробуємо дізнатися, як налаштувати тему календаря, щоб ви могли створити власну тему, яка буде відповідати вашому загальному дизайну. Тим не менш, вам потрібно трохи розуміння JavaScript і знайомство з CSS, перш ніж слідувати цьому підручнику.

    • Демо
    • Завантажити джерело

    Якщо ви готові, давайте почнемо.

    Активи

    Давайте підготуємо деякі основні засоби для календаря.

    По-перше, дизайн календаря буде посилатися на цей файл PSD з Premium Pixels. Отже, краще завантажити його спочатку, щоб допомогти нам взяти зразок потрібних нам кольорів. Потім завантажте два шаблони з Тонкий Шаблони що ми будемо використовувати як фон нашого календаря. У цьому прикладі ми вирішили використовувати наступні візерунки: чорна джинсова тканина і темна шкіра.

    Нам також знадобиться інструмент веб-розробки, як Firebug, для перевірки класів / ідентифікаторів елементів, створених інтерфейсом jQuery.

    Ну, я думаю, у нас було достатньо підготовки. Тепер перейдемо до першого кроку.

    Крок 1: jQuery UI Datepicker

    По-перше, перейдіть на сторінку завантаження JQuery UI. На цій сторінці ви знайдете кілька варіантів, як показано нижче; Core UI, віджети, взаємодії та ефекти.

    Ми повинні скасуйте виділення з усіх компонентів, тому що нам не потрібні всі вони.

    Потім, в Віджети в розділі виберіть лише дату вибору дати. Інтерфейс jQuery автоматично вибере необхідні залежності, а потім завантажити файл.

    Пов'яжіть всі завантажені файли - крім CSS - у ваш порожній документ HTML, а саме:

     

    Крок 2. Налаштування Datepicker

    На цьому кроці ми налаштуємо вибір дати з наступними параметрами.

    Вищевказаний код дасть команду jQuery відобразити календар з елементом datepicker id. Отже, нам потрібно поставити наступне div тег з - datepicker ID - у розділі тіла для формування календаря:

    Тепер календар вже повинен бути згенерований і виглядатиме так, рівно без стилів, але все ще має функціональність.

    Крок 3: Стилі

    Тепер почнемо стайлінг календаря. Ми почнемо, нормалізуючи всі елементи - як звичайно - і створюючи нову таблицю стилів, у цьому прикладі я називаю його datepicker.css. Потім з'єднайте їх усі з HTML-документом.

     

    Потім ми спочатку додамо до тіла фон, щоб наш HTML не виглядав занадто просто.

    body background: url ('… /img/darkdenim3.png') повторіть 0 0 # 555; 

    Далі ми визначимо ширину вибору дати, розташуємо її до центру та додаємо тінь, щоб надати ефект змінювання календарем.

    .ui-datepicker ширина: 216px; висота: авто; margin: 5px auto 0; шрифт: 9pt Arial, sans-serif; -webkit-box-shadow: 0px 0px 10px 0px rgba (0, 0, 0, .5); -moz-box-shadow: 0px 0px 10px 0px rgba (0, 0, 0, .5); box-shadow: 0px 0px 10px 0px rgba (0, 0, 0, .5); 

    Ми також будемо видаляти підкреслене оформлення за замовчуванням з кожного тегу прив'язки.

    .ui-datepicker a text-decoration: none; 

    Календар у jQuery UI формується за допомогою a таблиці. Отже, додамо 100% ширина для таблиці, таким чином, вона матиме максимальну ширину, що й обгортка вище; це 216px

    .таблиця ui-datepicker ширина: 100%; 

    Стилізація розділу заголовка

    Засіб вибору дати містить розділ заголовка Місяць і рік календаря. Цей розділ буде мати темно-шкіряну текстуру, яку ми завантажили раніше, з білим кольором шрифтів і 1px біла тінь на вершині.

    .ui-datepicker-header background: url ('… /img/dark_leather.png') повторює 0 0 # 000; колір: # e0e0e0; font-weight: bold; -webkit-box-shadow: вставка 0px 1px 1px 0px rgba (250, 250, 250, 2); -moz-box-shadow: вставка 0px 1px 1px 0px rgba (250, 250, 250, .2); box-shadow: вставка 0px 1px 1px 0px rgba (250, 250, 250, .2); текстова тінь: 1px -1px 0px # 000; фільтр: dropshadow (колір = # 000, offx = 1, offy = -1); висота рядка: 30px; border-width: 1px 0 0 0; стиль кордону: твердий; border-color: # 111; 

    Далі в центрі Місяць позиції.

     .ui-datepicker-title текст-вирівнювання: центр; 

    Замінити Далі і Поперед текст із зображенням стрілки спрайту, нарізаного з PSD.

    .ui-datepicker-prev, .ui-datepicker-next display: inline-block; ширина: 30px; висота: 30px; text-align: center; курсор: покажчик; background-image: url ('… /img/arrow.png'); фон-повтор: без повтору; висота лінії: 600%; переповнення: приховано; 

    Потім відрегулюйте позицію стрілки відповідно.

    .ui-datepicker-prev float: left; фонове положення: центр -30px;  .ui-datepicker-next float: right; фонове положення: центр 0px; 

    Поки назв днів Розділ обгортається в межах той, на основі нашого дизайну посилання, він буде мати трохи білий градієнт. І, щоб спростити наше завдання, ми використаємо цей інструмент для створення коду градієнта:

    .ui-datepicker thead background-color: # f7f7f7; background-image: -moz-лінійний градієнт (зверху, # f7f7f7 0%, # f1f1f1 100%); background-image: -webkit-градієнт (лінійний, лівий верхній, лівий нижній, колір-стоп (0%, # f7f7f7), колір-стоп (100%, # f1f1f1)); background-image: -webkit-лінійний градієнт (top, # f7f7f7 0%, # f1f1f1 100%); background-image: -o-лінійний градієнт (верхній, # f7f7f7 0%, # f1f1f1 100%); background-image: -ms-linear-gradient (зверху, # f7f7f7 0%, # f1f1f1 100%); background-image: лінійний градієнт (зверху, # f7f7f7 0%, # f1f1f1 100%); filter: progid: DXImageTransform.Microsoft.gradient (startColorstr = "# f7f7f7", endColorstr = "# f1f1f1", GradientType = 0); border-bottom: 1px твердий # bbb; 

    The назв днів текст буде мати темно-сірий колір # 666666 і вони також матимуть тонкий білий колір text-shadow щоб надати йому ефект натискання.

    .ui-datepicker th text-transform: верхній регістр; розмір шрифту: 6pt; заповнення: 5px 0; колір: # 666666; текстова тінь: 1px 0px 0px #fff; filter: dropshadow (колір = # fff, offx = 1, offy = 0); 

    Наразі календар буде виглядати так:

    Стайлинг дат

    У календарі завершуються календарні дати td або таблиці даних. Отже, ми встановимо додатку до 0 щоб видалити пробіли між td і надайте йому правий кордон 1px.

    .ui-datepicker tbody td заповнення: 0; правий край: 1px твердий # bbb; 

    За винятком останнього td, які не матимуть права кордону. Для цього ми встановили правий кордон до 0.

    .ui-datepicker tbody td: остання дитина прикордонний правий: 0px; 

    Рядок таблиці буде майже однаковим. Він матиме нижню границю 1px, за винятком останнього рядка.

    .ui-datepicker tbody tr кордон-дно: 1px твердий # bbb;  .ui-datepicker tbody tr: останнє-дитяче border-bottom: 0px; 

    Стилізація за умовчанням, наведення і активного стану

    На цьому кроці ми визначимо наведені дати та активні стилі. Спочатку визначимо стан за умовчанням, вказавши розмірність; центруйте положення тексту тексту, додайте колір градієнта та внутрішню білу тінь.

    .ui-datepicker td span, .ui-datepicker td a display: inline-block; font-weight: bold; text-align: center; ширина: 30px; висота: 30px; висота рядка: 30px; колір: # 666666; текстова тінь: 1px 1px 0px #fff; filter: dropshadow (колір = # fff, offx = 1, offy = 1);  .ui-datepicker-calendar .ui-state-default background: #ededed; background: -moz-linear-gradient (верхній, #ededed 0%, #dedede 100%); background: -webkit-gradient (лінійний, лівий верхній, лівий нижній, колір-стоп (0%, # ededed), колір-стоп (100%, # dedede)); background: -webkit-linear-gradient (зверху, #ededed 0%, # dedede 100%); фон: -o-лінійний градієнт (верхній, #ededed 0%, # dedede 100%); background: -ms-linear-gradient (верхній, #ededed 0%, # dedede 100%); фон: лінійний градієнт (верхній, #ededed 0%, # dedede 100%); filter: progid: DXImageTransform.Microsoft.gradient (startColorstr = "# ededed", endColorstr = "# dedede", GradientType = 0); -webkit-box-shadow: вставка 1px 1px 0px 0px rgba (250, 250, 250, .5); -moz-box-shadow: вставка 1px 1px 0px 0px rgba (250, 250, 250, .5); box-shadow: вставка 1px 1px 0px 0px rgba (250, 250, 250, .5);  .ui-datepicker-unselectable .ui-state-default background: # f4f4f4; колір: # b4b3b3; 

    Коли ви наведете курсор миші на дату, він перетвориться на білу.

     .ui-datepicker-calendar .ui-state-hover background: # f7f7f7; 

    Коли дата знаходиться в активному стані, вона матиме наступні стилі.

     .ui-datepicker-calendar .ui-state-active background: # 6eafbf; -webkit-box-shadow: вставка 0px 0px 10px 0px rgba (0, 0, 0, .1); -moz-box-shadow: вставка 0px 0px 10px 0px rgba (0, 0, 0, .1); box-shadow: вставка 0px 0px 10px 0px rgba (0, 0, 0, .1); колір: # e0e0e0; текстова тінь: 0px 1px 0px # 4d7a85; filter: dropshadow (колір = # 4d7a85, offx = 0, offy = 1); кордон: 1px твердий # 55838f; позиція: відносна; запас: -1px; 

    Тепер календар має виглядати набагато краще.

    Виправлення позиції

    На даний момент уважно подивіться на дату. Коли ви натискаєте дату в першому або останньому стовпці, ви помітите, що активний стан переповнює піксель від краю календаря.

    Отже, ми зробимо деякі невеликі виправлення.

    Спочатку ми зменшимо ширину дати на 29px, і встановити правий край останнього стовпця і лівого поля першого стовпця 0 повернути назад -1px маржа ми встановили раніше для активного стану.

    .ui-datepicker-календар td: перша дитина .ui-state-active width: 29px; margin-left: 0;  .ui-datepicker-календар td: остання дитина .ui-state-active ширина: 29px; margin-right: 0;  

    Датою останнього ряду календаря буде також подібна обробка.

    .ui-datepicker-calendar tr: останній дочір .ui-state-active висота: 29px; margin-bottom: 0; 

    Тепер давайте побачимо результат. Ну, тепер календар виглядає красиво і ідеально підходить для нашого дизайну. Крім того, ви можете побачити демо-версію і завантажити джерело, щоб переглянути код з посилань під зображенням.

    • Демо
    • Завантажити джерело

    Бонус: розширити календар

    Добре, сьогодні ми дізналися досить багато про те, як створити власну тему для JQuery UI Datepicker. Але ви не повинні зупинятися тут, так як є ще багато речей, які можна розширити з цього вибору. Залежно від вашого jQuery і CSS знань, ви розширюєте календар, щоб бути таким - введення тексту з накладною.

    • Демо
    • Завантажити джерело

    Подальше читання

    Для подальшого читання на jQuery UI. Прочитайте повну документацію тут:

    • Початок роботи з інтерфейсом jQuery
    • Темінг інтерфейсу jQUery
    • jQuery UI: Класи Theming API

    Заключні думки

    Дякуємо вам за читання і наступний цей підручник, сподіваюся, ви знайдете його корисним. І, якщо у вас є які-небудь відгуки або хочете додати речі, які можуть бути відсутні в цьому підручнику, не соромтеся вказати це в розділі коментарів нижче. Знову дякую).