Cara menggunakan slider html responsive

Dalam postingan sebelumnya saya sudah menunjukkan kepada anda bagaimana membangun galeri gambar secara kustom dengan slick.js. Hari ini saya akan membahas proses pembuatan animasi, responsif, layar penuh / full-screen slider carousel dengan owl.js (atau "Owl Carousel").

Seperti biasa, untuk mendapatkan gambaran awal tentang apa yang akan kita bangun, lihatlah demo CodePen terkait (Lihat versi yang lebih besar untuk pengalaman yang lebih baik):

Owl.js adalah sebuah plugin jQuery populer yang diciptakan oleh David Deutch yang memungkinkan anda membangun carousel yang menarik serta responsif. Untuk lebih memahami apa yang plugin ini dapat tawarkan kepada anda, periksalah demo berikut.

Cukup menyenangkan, Owl.js memiliki dukungan browser yang luar biasa, setelah diuji pada perangkat berikut:

  • Chrome
  • Firefox
  • Opera
  • IE7/8/10/11
  • iPad Safari
  • iPod4 Safari
  • Nexus 7 Chrome
  • Galaxy S4
  • Nokia 8s Windows8

Untuk keterangan lebih lanjut lihatlah pada dokumentasi.

Memulai dengan Owl.js

Untuk memulai dengan owl.js, mulailah dengan mengunduh dan menginstal file berikut pada proyek anda:

  • jQuery
  • 2
    82 atau versi minified
  • 2
    83 atau versi minified

Opsional, Anda mungkin ingin mengimpor file

2
84.

Anda dapat mengambil salinan file owl carousel yang sesuai dengan mengunjungi repositori Github-nya, dengan menggunakan package manager (misalnya. npm), atau dengan memuat aset yang diperlukan melalui CDN (misalnya: cdnjs). Untuk tutorial ini, saya akan memilih opsi terakhir.

Untuk keperluan tutorial ini, di luar file owl carousel, saya juga memasukkan Babel dan Bootstrap 4.

Dengan memperhatikan hal itu, jika anda melihat di bawah tab Settings di demo codepen kami, anda akan melihat bahwa saya telah menyertakan tiga file CSS eksternal dan dua file JavaScript eksternal.

Cara menggunakan slider html responsive
Cara menggunakan slider html responsive
Cara menggunakan slider html responsive
Cara menggunakan slider html responsive
Cara menggunakan slider html responsive
Cara menggunakan slider html responsive

1. HTML

Untuk memulai hal-hal tersebut kita mendefinisikan carousel yang memiliki tiga slide. Masing-masing slide tersebut berisi judul, subtitle, dan tombol ajakan bertindak (call-to-action button).

Berikut adalah struktur yang diperlukan untuk halaman demo kami:

1
<div class="owl-carousel owl-theme">
2
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
3
    <div class="container">
4
      <div class="row justify-content-center justify-content-md-start">
5
        <div class="col-10 col-md-6 static">
<div class="owl-carousel owl-theme">
0
<div class="owl-carousel owl-theme">
1
<div class="owl-carousel owl-theme">
2
<div class="owl-carousel owl-theme">
3
<div class="owl-carousel owl-theme">
4
<div class="owl-carousel owl-theme">
5
<div class="owl-carousel owl-theme">
6
<div class="owl-carousel owl-theme">
7
<div class="owl-carousel owl-theme">
8
<div class="owl-carousel owl-theme">
9
2
0
<div class="owl-carousel owl-theme">
5
2
2
2
3
2
4
2
5
2
6
<div class="owl-carousel owl-theme">
5
2
8
2
9
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
0
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
1
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
2
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
3
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
4
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
5
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
6
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
7
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
8
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6
3
7

Perlu disebutkan dua hal pada tahap ini:

  1. Kode di atas memanfaatkan kelas Bootstrap 4. Framework Bootstrap tidaklah penting; saya memasukkannya hanya karena saya ingin mempercepat proses pengembangan CSS.
  2. Saya menambahkan gambar latar belakang pada setiap slide melalui inline-style. Seringkali, ketika anda berurusan dengan konten yang dinamis, ini merupakan metode CSS yang paling umum untuk menambahkan gambar latar belakang.

2. CSS

Dengan HTML yang sudah berada pada tempatnya, mari kita lihat CSS style yang akan kami terapkan pada halaman. Untuk kemudahan, kami hanya akan membahas sebagian dari style yang tersedia.

Pertama, kami mendefinisikan dua properti khusus dan dua kelas pembantu:

1
3
9
2
    <div class="container">
1
3
    <div class="container">
3
4
    <div class="container">
5
5
<div class="owl-carousel owl-theme">
0
    <div class="container">
8
<div class="owl-carousel owl-theme">
2
4
0
<div class="owl-carousel owl-theme">
4
    <div class="container">
5
<div class="owl-carousel owl-theme">
6
<div class="owl-carousel owl-theme">
8
4
5
2
0
4
7
2
2
4
9
2
4
      <div class="row justify-content-center justify-content-md-start">
1
2
6
    <div class="container">
5

Selanjutnya, kami menentukan style untuk slide carousel, termasuk transisi:

1
      <div class="row justify-content-center justify-content-md-start">
5
2
      <div class="row justify-content-center justify-content-md-start">
7
3
      <div class="row justify-content-center justify-content-md-start">
9
4
5
1
5
    <div class="container">
5
<div class="owl-carousel owl-theme">
0
<div class="owl-carousel owl-theme">
2
5
6
<div class="owl-carousel owl-theme">
4
5
8
<div class="owl-carousel owl-theme">
6
        <div class="col-10 col-md-6 static">
0
<div class="owl-carousel owl-theme">
8
        <div class="col-10 col-md-6 static">
2
2
0
        <div class="col-10 col-md-6 static">
4
2
2
    <div class="container">
5
2
4
2
6
        <div class="col-10 col-md-6 static">
9
2
8
<div class="owl-carousel owl-theme">
01
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
0
<div class="owl-carousel owl-theme">
03
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
2
<div class="owl-carousel owl-theme">
05
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
4
<div class="owl-carousel owl-theme">
07
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
6
    <div class="container">
5
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
8
3
0
<div class="owl-carousel owl-theme">
12
3
2
<div class="owl-carousel owl-theme">
14
3
4
    <div class="container">
5
3
6
<div class="owl-carousel owl-theme">
18
<div class="owl-carousel owl-theme">
19
<div class="owl-carousel owl-theme">
20
<div class="owl-carousel owl-theme">
21
<div class="owl-carousel owl-theme">
22
    <div class="container">
5
<div class="owl-carousel owl-theme">
24
<div class="owl-carousel owl-theme">
25
<div class="owl-carousel owl-theme">
26
<div class="owl-carousel owl-theme">
27
<div class="owl-carousel owl-theme">
28
<div class="owl-carousel owl-theme">
29
    <div class="container">
5

Terakhir, kami menetapkan beberapa aturan untuk metode navigasi:

1
<div class="owl-carousel owl-theme">
32
2
<div class="owl-carousel owl-theme">
34
3
<div class="owl-carousel owl-theme">
36
4
    <div class="container">
5
5
<div class="owl-carousel owl-theme">
0
<div class="owl-carousel owl-theme">
41
<div class="owl-carousel owl-theme">
2
<div class="owl-carousel owl-theme">
43
<div class="owl-carousel owl-theme">
4
<div class="owl-carousel owl-theme">
45
<div class="owl-carousel owl-theme">
6
<div class="owl-carousel owl-theme">
47
<div class="owl-carousel owl-theme">
8
    <div class="container">
5
2
0
2
2
<div class="owl-carousel owl-theme">
52
2
4
<div class="owl-carousel owl-theme">
54
2
6
<div class="owl-carousel owl-theme">
56
2
8
    <div class="container">
5
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
0
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
2
<div class="owl-carousel owl-theme">
34
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
4
<div class="owl-carousel owl-theme">
63
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
6
<div class="owl-carousel owl-theme">
65
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
8
<div class="owl-carousel owl-theme">
67
3
0
<div class="owl-carousel owl-theme">
69
3
2
    <div class="container">
5

Catatan: Slide harus menutupi tinggi tampilan window secara penuh dan karena itu kita memberi mereka

2
85. Namun, seperti unit ini tidak konsisten di beberapa perangkat (misalnya perangkat iOS), pilihan lain adalah untuk mengatur tinggi slide melalui JavaScript (Lihatlah panel demo JavaScript untuk informasi lebih lanjut)

3. JavaScript

Pada tahap ini kita siap untuk mengalihkan perhatian kita untuk JavaScript.

Sebagai langkah pertama, kita akan menginisialisasi carousel. Secara default plugin menyediakan "dots navigasi" atau navigasi berupa titik, tetapi carousel yang kita buat juga akan mencakup navigasi berupa anak panah.

Cara menggunakan slider html responsive
Cara menggunakan slider html responsive
Cara menggunakan slider html responsive
Pilihan navigasi Owl

Kami mengaktifkan pilihan navigasi dari properti konfigurasi 

2
86. Selain itu, kami mendefinisikan beberapa SVG khusus sebagai anak panah berkat properti konfigurasi
2
87.

Kode yang mengaktifkan carousel ditampilkan seperti di bawah ini:

1
<div class="owl-carousel owl-theme">
73
2
<div class="owl-carousel owl-theme">
75
3
<div class="owl-carousel owl-theme">
77
4
<div class="owl-carousel owl-theme">
79
5
<div class="owl-carousel owl-theme">
81
<div class="owl-carousel owl-theme">
0
<div class="owl-carousel owl-theme">
83
<div class="owl-carousel owl-theme">
2
<div class="owl-carousel owl-theme">
85
<div class="owl-carousel owl-theme">
4
<div class="owl-carousel owl-theme">
87
<div class="owl-carousel owl-theme">
6
<div class="owl-carousel owl-theme">
89

Menambahkan Animasi ke Elemen Slide 

Sebagai langkah selanjutnya, kami menganimasikan isi dari setiap slide. Behavior / perilaku ini ditangani melalui event

2
88 yang disediakan oleh owl.

Berikut adalah kode terkait:

1
<div class="owl-carousel owl-theme">
91
2
<div class="owl-carousel owl-theme">
93
3
<div class="owl-carousel owl-theme">
95
4
<div class="owl-carousel owl-theme">
97
5
<div class="owl-carousel owl-theme">
99

Jadi setiap kali kami mengunjungi slide baru, pertama-tama isi dari semua slide menghilang. Kemudian, isi slide saat ini muncul dengan slide-in animation yang bagus.

Catatan: Sebagai ganti dari event

2
89 kami dapat menggunakan event yang sama yaitu event
2
90.

Sejauh ini, kami telah melihat bagaimana animasi diaktifkan saat kami menggulirkan slide. Namun kami juga ingin jenis animasi seperti itu pada awalnya carousel dimuat. Untuk menerapkan fungsi ini, kami akan menggunakan event

2
91.

Berikut kode yang terkait dengan event ini:

1
2
01
2
2
03
3
2
05
4
2
07
5
2
09
<div class="owl-carousel owl-theme">
0
<div class="owl-carousel owl-theme">
99

Di dalam event tersebut kami menambahkan kelas

2
92 ke elemen slide pertama.

Hal ini penting untuk dicatat bahwa event ini harus dilampirkan sebelum inisialisasi carousel.

Mencegah Page Jump ketika Proses Load

Sebelum melanjutkan, mari kita bahas satu hal yang rumit. Jika anda melihat halaman demo, anda akan melihat bahwa ada elemen

2
93 yang didefinisikan di bawah carousel. Secara default, sampai carousel dimuat, section / bagian konten muncul dan lompatan kecil / small jump terjadi di halaman kami.

Ada dua cara untuk memperbaiki perilaku yang tidak diinginkan ini. Pertama, kita dapat menambahkan preloader (kita sudah melakukannya dalam tutorial yang terkait tentang slick carousel). Opsi kedua yang akan kami terapkan di sini adalah menyembunyikan

2
93 dan menampilkannya segera setelah carousel diinisialisasi.

Dalam hal kode, aturan CSS yang dibutuhkan adalah seperti ini:

1
2
13
2
2
15
3
    <div class="container">
5

Dan kode JavaScript-nya:

1
2
03
2
2
05
3
2
23
4
2
25
5
2
27
<div class="owl-carousel owl-theme">
0
2
09
<div class="owl-carousel owl-theme">
2
<div class="owl-carousel owl-theme">
99

Mengatur Posisi Titik

Hal terakhir yang harus kita lakukan adalah memposisikan navigasi titik. Secara default, itu benar-benar diposisikan secara absolute. Hal-hal berikut harus terjadi:

  1. Ini harus disejajarkan secara horizontal dengan elemen
    2
    95 dari slide target.
  2. Ini harus diposisikan di bawah elemen itu dengan jarak atas 20px.

Fungsi yang menjalankan dan menetapkan posisi yang diinginkan untuk titik-titik kami adalah

2
96.

Inilah fungsi tersebut:

1
2
33
2
2
35
3
2
37
4
    <div class="container">
5

Ini mengisolasi elemen

2
95 dari slide yang aktif dan melewatkannya sebagai argumen untuk sub-fungsi pada
2
98.

Berikut adalah subfungsinya:

1
2
41
2
2
43
3
2
45
4
2
47
5
<div class="owl-carousel owl-theme">
0
2
50
<div class="owl-carousel owl-theme">
2
2
52
<div class="owl-carousel owl-theme">
4
2
54
<div class="owl-carousel owl-theme">
6
<div class="owl-carousel owl-theme">
89
<div class="owl-carousel owl-theme">
8
    <div class="container">
5

Dalam fungsi ini kami mengatur nilai-nilai

2
99 dan
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
00 yang sesuai dari elemen
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
01. Berdasarkan pada ketinggian dan posisi elemen target.

Menyediakan dukungan Resize Browser

Selangkah lebih maju, posisi titik-titik harus diperbarui saat kami mengubah ukuran jendela browser. Untuk mencapai hal ini, kami mengambil keuntungan dari event

  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
02 pada owl carousel.

Berikut adalah kode yang diperlukan:

1
2
60
2
2
05
3
2
64
4
2
66
5
<div class="owl-carousel owl-theme">
99

Posisi tergantung pada isi

Terakhir tetapi bukanlah yang paling akhir, kita melakukan navigasi melalui slide titik-titik harus direposisi tergantung pada tinggi dan kedudukan isi slide yang aktif. Berkat event

2
89 lagi, kami akan mampu memecahkan kebutuhan baru.

Berikut adalah kode yang terkait:

1
2
70
2
2
72
3
4
<div class="owl-carousel owl-theme">
95
5
2
77
<div class="owl-carousel owl-theme">
0
2
37
<div class="owl-carousel owl-theme">
2
<div class="owl-carousel owl-theme">
99

Saran yang Membangun

Sebelum menutup, mari kita bahas satu bug umum pada owl carousel. Jika kita menghapus bagian yang berada di bawah carousel, vertikal scrollbar akan menghilang dan sebagian slide yang berdekatan muncul.

Cara menggunakan slider html responsive
Cara menggunakan slider html responsive
Cara menggunakan slider html responsive

Untuk memperbaikinya, kami memicu event

  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
04 setelah inisialisasi carousel, seperti ini: 
  <div class="owl-slide d-flex align-items-center cover" style="background-image: url(IMG_SRC);">
05

4. Dukungan Browser

Demo seharusnya berfungsi dengan baik di semua browser terbaru dan anda dapat menggunakannya dengan aman pada proyek Anda. Inilah pengingat tentang apa yang telah kita buat:

Kesimpulan

Dalam tutorial menyeluruh ini, kami berhasil membuat animasi slider carousel layar penuh dengan owl.js. Semoga anda telah mendapatkan keterampilan baru yang dapat anda praktikkan dalam proyek mendatang anda. Seperti biasa, jika ada pertanyaan, beri tahu saya pada kolom komentar di bawah.