Домашняя » кодирование » Как настроить и тематизировать jQuery UI Datepicker

    Как настроить и тематизировать jQuery UI Datepicker

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

    И в этом посте мы рассмотрим одну из предоставленных функций - виджет Datepicker..

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

    • демонстрация
    • Скачать исходный код

    Если вы готовы, давайте начнем.

    Активы

    Давайте подготовим некоторые из основных активов для календаря.

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

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

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

    Шаг 1: jQuery UI Datepicker

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

    Мы должны отмените выбор всех компонентов, поскольку нам не нужны все из них.

    Затем в Виджеты В разделе выберите только указатель даты. Пользовательский интерфейс jQuery автоматически выберет необходимые зависимости, а затем скачать файл.

    Ссылка на все загруженные файлы - кроме CSS - в пустой HTML-документ следующим образом:

     

    Шаг 2: Настройка Datepicker

    На этом шаге мы настроим средство выбора даты со следующими параметрами.

    Приведенный выше код проинструктирует jQuery отображать календарь на элементе с DatePicker Я бы. Итак, нам нужно поставить следующее ДИВ пометьте - datepicker ID - в разделе тела, чтобы сформировать календарь:

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

    Шаг 3: Стили

    Теперь давайте начнем стилизацию календаря. Мы начнем с нормализации всех элементов - как обычно - и создания новой таблицы стилей, в этом примере я назову ее datepicker.css. Затем свяжите их все с документом HTML.

     

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

    body background: url ('… /img/darkdenim3.png') repeat 0 0 # 555; 

    Далее мы укажем ширину указателя даты, поместим его в центр и добавим тень, чтобы придать календарному эффекту эффект промисенса..

    .ui-datepicker width: 216px; высота: авто; поле: 5px авто 0; шрифт: 9pt Arial, без засечек; -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 текстовое оформление: нет; 

    Календарь в jQuery UI состоит из Таблица. Итак, давайте добавим 100% ширина для Таблица, так что он будет иметь такую ​​же максимальную ширину, как обертка выше; то есть 216px

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

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

    DatePicker имеет раздел заголовка, содержащий Месяц год календаря. Этот раздел будет иметь темную текстуру кожи, которую мы скачали ранее, с немного белым цветом шрифта и 1px белая тень наверху.

    .ui-datepicker-header background: url ('… /img/dark_leather.png') repeat 0 0 # 000; цвет: # e0e0e0; вес шрифта: полужирный; -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; фильтр: drophadow (цвет = # 000, offx = 1, offy = -1); высота строки: 30 пикселей; border-width: 1px 0 0 0; стиль границы: твердый; цвет границы: # 111; 

    Далее давайте центрируем Месяц позиция.

     .ui-datepicker-title text-align: center; 

    Заменить следующий а также Предыдущая текст с изображениями стрелок спрайтов, вырезанных из PSD.

    .ui-datepicker-prev, .ui-datepicker-next display: inline-block; ширина: 30 пикселей; высота: 30 пикселей; выравнивание текста: по центру; курсор: указатель; background-image: url ('… /img/arrow.png'); повторение фона: без повтора; высота линии: 600%; переполнение: скрытое; 

    Затем отрегулируйте положение стрелки соответственно.

    .ui-datepicker-prev float: left; background-position: center -30px;  .ui-datepicker-next float: right; background-position: center 0px; 

    В то время как названия дней раздел обернут в THEAD, основываясь на нашей модели, у него будет слегка белый градиент. И, чтобы упростить нашу задачу, мы будем использовать этот инструмент для генерации градиентного кода:

    .thei-datepicker thead background-color: # f7f7f7; background-image: -moz-linear-Gradient (вверху, # f7f7f7 0%, # f1f1f1 100%); background-image: -webkit-градиент (линейный, слева вверху, слева внизу, остановка цвета (0%, # f7f7f7), остановка цвета (100%, # f1f1f1)); background-image: -webkit-linear-Gradient (вверху, # f7f7f7 0%, # f1f1f1 100%); фоновое изображение: -o-линейный градиент (вверху, # f7f7f7 0%, # f1f1f1 100%); background-image: -ms-linear-градиент (вверху, # f7f7f7 0%, # f1f1f1 100%); background-image: линейный градиент (вверху, # f7f7f7 0%, # f1f1f1 100%); фильтр: progid: DXImageTransform.Microsoft.gradient (startColorstr = "# f7f7f7", endColorstr = "# f1f1f1", GradientType = 0); Граница внизу: 1px solid #bbb; 

    названия дней текст будет иметь темно-серый цвет # 666666 и они также будут иметь тонкий белый текст-тень придать этому эффект.

    .ui-datepicker th text-transform: прописные буквы; размер шрифта: 6pt; отступы: 5px 0; цвет: # 666666; тень текста: 1px 0px 0px #fff; фильтр: drophadow (color = # fff, offx = 1, offy = 0); 

    На этом этапе календарь будет выглядеть так:

    Стиль Даты

    Календарные даты обернуты в пределах тд или данные таблицы. Итак, мы установим отступ 0 убрать пробелы между тд и дать ему правильную границу 1px.

    .ui-datepicker tbody td padding: 0; border-right: 1px solid #bbb; 

    Кроме последнего тд, который не будет иметь правильную границу. Мы устанавливаем правую границу в 0 для этого.

    .ui-datepicker tbody td: last-child border-right: 0px; 

    Строка таблицы будет почти такой же. У него будет граница в 1 пиксель, за исключением последнего ряда.

    .ui-datepicker tbody tr border-bottom: 1px solid #bbb;  .ui-datepicker tbody tr: last-child border-bottom: 0px; 

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

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

    .ui-datepicker td span, .ui-datepicker td a display: inline-block; вес шрифта: полужирный; выравнивание текста: по центру; ширина: 30 пикселей; высота: 30 пикселей; высота строки: 30 пикселей; цвет: # 666666; тень текста: 1px 1px 0px #fff; фильтр: drophadow (color = # fff, offx = 1, offy = 1);  .ui-datepicker-calendar .ui-state-default background: #ededed; background: -moz-linear-Gradient (сверху, #ededed 0%, #dedede 100%); background: -webkit-градиент (линейный, слева вверху, слева внизу, остановка цвета (0%, # ededed), остановка цвета (100%, # dedede)); background: -webkit-linear-Gradient (сверху, #ededed 0%, # dedede 100%); фон: -o-линейный градиент (top, #ededed 0%, # dedede 100%); background: -ms-linear-градиент (top, #ededed 0%, # dedede 100%); фон: линейный градиент (top, #ededed 0%, # dedede 100%); фильтр: 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); тень от рамки: вставка 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; фильтр: drophadow (color = # 4d7a85, offx = 0, offy = 1); граница: 1px solid # 55838f; положение: относительное; поле: -1px; 

    Теперь календарь должен выглядеть намного лучше.

    Исправление положения

    На данный момент, посмотрите на дату внимательно. Если щелкнуть дату в первом или последнем столбце, вы заметите, что активное состояние переполняет пиксель за краем календаря..

    Итак, здесь мы сделаем несколько небольших исправлений.

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

    .ui-datepicker-calendar td: первый-ребенок .ui-state-active ширина: 29 пикселей; поле слева: 0;  .ui-datepicker-calendar td: last-child .ui-state-active ширина: 29px; поле справа: 0;  

    Дата в последней строке календаря также будет иметь аналогичную обработку.

    .ui-datepicker-calendar tr: последний-ребенок .ui-state-active высота: 29 пикселей; нижнее поле: 0; 

    Теперь посмотрим на результат. Что ж, календарь теперь выглядит красиво и идеально вписывается в нашу модель дизайна. И, вы можете увидеть демо и скачать исходный код, чтобы изучить код по ссылкам под изображением.

    • демонстрация
    • Скачать исходный код

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

    Что ж, сегодня мы узнали много нового о том, как создать собственную тему для jQuery UI Datepicker. Но не стоит останавливаться на достигнутом, так как есть еще много вещей, которые можно расширить с помощью этого средства выбора даты. В зависимости от вашего уровня владения jQuery и CSS вы расширяете календарь таким образом: ввод текста с помощью оверлея.

    • демонстрация
    • Скачать исходный код

    Дальнейшее чтение

    Для дальнейшего чтения на jQuery UI. Вы можете прочитать полную документацию здесь:

    • Начало работы с пользовательским интерфейсом jQuery
    • Тематический интерфейс jQUery
    • Пользовательский интерфейс jQuery: тематические API-классы

    Последние мысли

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