Bagaimana Cara Mengubahsuaikan dan Tema jQuery UI Datepicker
jQuery UI benar-benar luar biasa dan karena kemudahan penggunaan, itu populer dan banyak digunakan di hampir semua situs web yang membutuhkan fitur interaktif.
Dan, dalam posting ini, kita akan melihat salah satu fitur yang disediakan, widget Datepicker.
Kami akan mencoba mempelajari cara menyesuaikan tema kalender, sehingga Anda akan dapat membuat tema Anda sendiri yang akan sesuai dengan desain keseluruhan Anda. Namun, Anda perlu sedikit pemahaman dalam JavaScript dan terbiasa dengan CSS sebelum mengikuti tutorial ini.
- Demo
- Sumber Unduhan
Jika Anda siap, mari kita mulai.
Aset
Mari kita siapkan beberapa aset penting untuk kalender.
Pertama, desain kalender akan merujuk ke file PSD ini dari Premium Pixels. Jadi sebaiknya kita unduh terlebih dahulu untuk membantu kita mengambil sampel warna yang kita butuhkan. Kemudian, unduh dua pola dari Halus Pola yang akan kita gunakan sebagai latar belakang kalender kita. Dalam contoh ini, kami memutuskan untuk menggunakan pola berikut: denim hitam dan kulit gelap.
Kami juga akan memerlukan alat pengembangan web seperti Firebug untuk memeriksa kelas elemen / id yang dihasilkan oleh jQuery UI.
Yah, saya pikir kita sudah memiliki persiapan yang cukup. Sekarang, mari kita pergi ke langkah pertama.
Langkah 1: jQuery UI Datepicker
Pertama, buka halaman unduh jQuery UI. Di halaman ini Anda akan disajikan dengan beberapa opsi, sebagai berikut; Inti UI, Widget, Interaksi dan Efek.
Kita harus batalkan pemilihan semua komponen, karena kita tidak membutuhkan semuanya.
Lalu, di Widget bagian pilih hanya datepicker. UI jQuery akan memilih dependensi esensial secara otomatis, lalu unduh berkas.
Tautkan semua file yang diunduh - kecuali CSS - ke dokumen kosong HTML Anda, sebagai berikut:
Langkah 2: Menyesuaikan Datepicker
Pada langkah ini, kami akan mengonfigurasi datepicker dengan opsi berikut.
Kode di atas akan menginstruksikan jQuery untuk menampilkan kalender pada elemen dengan datepicker
id. Jadi, kita perlu menempatkan yang berikut ini div
tag dengan - ID datepicker - di bagian tubuh untuk membentuk kalender:
Sekarang kalender seharusnya sudah dibuat dan muncul seperti ini, polos tanpa gaya apa pun, tetapi masih memiliki fungsi.
Langkah 3: Gaya
Sekarang mari kita mulai menata kalender. Kita akan mulai dengan menormalkan semua elemen - seperti biasa - dan membuat stylesheet baru, dalam contoh ini saya beri nama datepicker.css
. Kemudian tautkan semuanya ke dokumen HTML.
Kemudian, pertama-tama kita akan melampirkan latar belakang ke tubuh sehingga HTML kita tidak terlihat terlalu polos.
body background: url ('… /img/darkdenim3.png') ulangi 0 0 # 555;
Selanjutnya, kita akan menentukan lebar datepicker, menempatkannya ke tengah dan menambahkan drop shadow untuk memberikan efek prominece ke kalender.
.ui-datepicker width: 216px; tinggi: otomatis; margin: 5px otomatis 0; font: 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);
Kami juga akan menghapus dekorasi garis bawah default dari setiap tag jangkar.
.ui-datepicker a text-decoration: none;
Kalender di jQuery UI dibentuk dengan a meja
. Jadi, mari kita tambahkan 100%
lebar untuk meja
, sehingga memiliki lebar maksimum yang sama dengan pembungkus di atas; itu adalah 216px
.tabel ui-datepicker width: 100%;
Styling bagian Header
Datepicker memiliki bagian header yang berisi Bulan tahun kalender. Bagian ini akan memiliki tekstur kulit gelap yang telah kami unduh sebelumnya dengan warna font yang sedikit putih dan 1px
bayangan putih di bagian atas.
.ui-datepicker-header background: url ('… /img/dark_leather.png') ulangi 0 0 # 000; warna: # e0e0e0; font-weight: bold; -webkit-box-shadow: inset 0px 1px 1px 0px rgba (250, 250, 250, 2); -moz-box-shadow: inset 0px 1px 1px 0px rgba (250, 250, 250, .2); box-shadow: inset 0px 1px 1px 0px rgba (250, 250, 250, .2); text-shadow: 1px -1px 0px # 000; filter: dropshadow (color = # 000, offx = 1, offy = -1); garis-tinggi: 30px; border-width: 1px 0 0 0; gaya perbatasan: solid; warna perbatasan: # 111;
Selanjutnya, mari kita pusatkan Bulan posisi.
.ui-datepicker-title text-align: center;
Ganti Berikutnya dan Sebelumnya teks dengan gambar panah sprite diiris dari PSD.
.ui-datepicker-prev, .ui-datepicker-next display: inline-block; lebar: 30px; tinggi: 30px; perataan teks: tengah; kursor: pointer; background-image: url ('... /img/arrow.png'); background-repeat: no-repeat; garis-tinggi: 600%; overflow: disembunyikan;
Kemudian, sesuaikan posisi panah masing-masing.
.ui-datepicker-prev float: left; background-position: center -30px; .ui-datepicker-next float: right; posisi latar belakang: tengah 0px;
Selagi nama hari Bagian dibungkus dalam a thead
, berdasarkan referensi desain kami, itu akan memiliki gradien yang sedikit putih. Dan, untuk menyederhanakan tugas kami, kami akan menggunakan alat ini untuk menghasilkan kode gradien:
.ui-datepicker thead background-color: # f7f7f7; background-image: -moz-linear-gradient (atas, # f7f7f7 0%, # f1f1f1 100%); background-image: -webkit-gradient (linear, kiri atas, kiri bawah, color-stop (0%, # f7f7f7), color-stop (100%, # f1f1f1)); background-image: -webkit-linear-gradient (atas, # f7f7f7 0%, # f1f1f1 100%); background-image: -o-linear-gradient (atas, # f7f7f7 0%, # f1f1f1 100%); background-image: -ms-linear-gradient (atas, # f7f7f7 0%, # f1f1f1 100%); background-image: linear-gradient (atas, # f7f7f7 0%, # f1f1f1 100%); filter: progid: DXImageTransform.Microsoft.gradient (startColorstr = "# f7f7f7", endColorstr = "# f1f1f1", GradientType = 0); border-bottom: 1px solid #bbb;
Itu nama hari teks akan memiliki warna abu-abu gelap # 666666
dan mereka juga akan memiliki putih tipis bayangan teks
untuk memberikan efek yang ditekan.
.ui-datepicker th text-transform: huruf besar; ukuran font: 6pt; padding: 5px 0; warna: # 666666; text-shadow: 1px 0px 0px #fff; filter: dropshadow (color = # fff, offx = 1, offy = 0);
Pada titik ini, kalender akan muncul seperti ini:
Menata Tanggal
Tanggal kalender terbungkus dalam td
atau data tabel. Jadi, kami akan mengatur padding ke 0
untuk menghapus spasi di antara td
dan berikan batas kanan 1px.
.ui-datepicker tbody td padding: 0; border-right: 1px solid #bbb;
Kecuali yang terakhir td
, yang tidak akan memiliki batas kanan. Kami menetapkan batas kanan ke 0 untuk ini.
.ui-datepicker tbody td: last-child border-right: 0px;
Baris tabel akan hampir sama. Ini akan memiliki batas bawah 1px kecuali untuk baris terakhir.
.ui-datepicker tbody tr border-bottom: 1px solid #bbb; .ui-datepicker tbody tr: last-child border-bottom: 0px;
Styling Keadaan Default, Arahkan dan Aktif
Pada langkah ini kita akan menentukan hover tanggal dan gaya aktif. Kami pertama-tama akan menentukan status default tanggal dengan menentukan dimensi; tengah posisi teks tanggal, tambahkan warna gradien dan bayangan putih bagian dalam.
.ui-datepicker td span, .ui-datepicker td display: inline-block; font-weight: bold; perataan teks: tengah; lebar: 30px; tinggi: 30px; garis-tinggi: 30px; warna: # 666666; text-shadow: 1px 1px 0px #fff; filter: dropshadow (color = # fff, offx = 1, offy = 1); .ui-datepicker-calendar .ui-state-default background: #ededed; latar belakang: -moz-linear-gradient (atas, #ededed 0%, #dedede 100%); latar belakang: -webkit-gradient (linear, kiri atas, kiri bawah, color-stop (0%, # ededed), color-stop (100%, # dedede)); latar belakang: -webkit-linear-gradient (atas, #ededed 0%, # dedede 100%); latar belakang: -o-linear-gradient (atas, #ededed 0%, # dedede 100%); latar belakang: -ms-linear-gradient (atas, #ededed 0%, # dedede 100%); latar belakang: linear-gradient (atas, #ededed 0%, # dedede 100%); filter: progid: DXImageTransform.Microsoft.gradient (startColorstr = "# ededed", endColorstr = "# dedede", GradientType = 0); -webkit-box-shadow: inset 1px 1px 0px 0px rgba (250, 250, 250, .5); -moz-box-shadow: inset 1px 1px 0px 0px rgba (250, 250, 250, .5); box-shadow: inset 1px 1px 0px 0px rgba (250, 250, 250, .5); .ui-datepicker-unselectable .ui-state-default background: # f4f4f4; warna: # b4b3b3;
Saat Anda mengarahkan kursor ke tanggal, itu akan berubah menjadi sedikit putih.
.ui-datepicker-calendar .ui-state-hover background: # f7f7f7;
Ketika tanggal dalam keadaan aktif, itu akan memiliki gaya berikut.
.ui-datepicker-calendar .ui-state-active background: # 6eafbf; -webkit-box-shadow: inset 0px 0px 10px 0px rgba (0, 0, 0, .1); -moz-box-shadow: inset 0px 0px 10px 0px rgba (0, 0, 0, .1); box-shadow: inset 0px 0px 10px 0px rgba (0, 0, 0, .1); warna: # e0e0e0; text-shadow: 0px 1px 0px # 4d7a85; filter: dropshadow (color = # 4d7a85, offx = 0, offy = 1); perbatasan: 1px solid # 55838f; posisi: relatif; margin: -1px;
Sekarang, kalender akan terlihat jauh lebih baik.
Memperbaiki Posisi
Pada titik ini, lihat tanggal dengan hati-hati. Ketika Anda mengklik pada tanggal di kolom pertama atau terakhir, Anda akan melihat bahwa keadaan aktif meluap piksel dari tepi kalender.
Jadi di sini, kami akan melakukan beberapa perbaikan kecil.
Pertama kita akan mengurangi lebar tanggal menjadi 29px
, dan atur margin kanan kolom terakhir dan margin kiri kolom pertama 0
untuk membalikkan -1px
margin yang telah kita tentukan sebelumnya untuk status aktif.
.ui-datepicker-calendar td: first-child .ui-state-active width: 29px; margin-kiri: 0; .ui-datepicker-calendar td: last-child .ui-state-active width: 29px; margin-right: 0;
Tanggal di baris terakhir kalender juga akan memiliki perlakuan serupa.
.ui-datepicker-calendar tr: last-child .ui-state-active height: 29px; margin-bottom: 0;
Sekarang, mari kita lihat hasilnya. Kalender sekarang terlihat indah dan sangat cocok sebagai referensi desain kami. Dan, Anda dapat melihat demo dan mengunduh sumber untuk memeriksa kode dari tautan di bawah gambar.
- Demo
- Sumber Unduhan
Bonus: Perpanjang Kalender
Nah, hari ini kami telah belajar banyak tentang cara membuat tema khusus untuk jQuery UI Datepicker. Tetapi Anda tidak boleh berhenti di sini, karena masih banyak hal yang dapat diperpanjang dari datepicker ini. Bergantung pada kemampuan jQuery dan CSS Anda, Anda memperpanjang kalender menjadi seperti ini - input teks dengan datepicker overlay.
- Demo
- Sumber Unduhan
Bacaan lebih lanjut
Untuk membaca lebih lanjut tentang jQuery UI. Anda dapat membaca dokumentasi selengkapnya di sini:
- Memulai dengan jQuery UI
- Mereka jQUery UI
- jQuery UI: Kelas-kelas API mereka
Pikiran terakhir
Terima kasih telah membaca dan mengikuti tutorial ini, semoga bermanfaat. Dan, Jika Anda memiliki umpan balik atau ingin menambahkan hal-hal yang mungkin hilang dari tutorial ini, silakan tunjukkan di bagian komentar di bawah ini. Terima kasih lagi).