Beberapa Tumpuan Modifikasi Slideshow Jquery - Dewa Blogger

Halaman

    Social Items

Buy Now
Beberapa Contoh Modifikasi Slideshow jQuery Beberapa Contoh Modifikasi Slideshow jQuery

Artikel ini merupakan kelanjutan dari artikel jQuery Slideshow Otomatis dengan Navigasi Angka

1. Slideshow dengan Caption

HTML

Untuk menciptakan slideshow dengan caption, kita memerlukan beberapa langkah perubahan. Pertama-tama, kita ganti elemen <div class="slide"> dengan <img>. Kemudian sisipkan elemen <figcaption> ke dalam #slider. Bagian inilah yang nantinya akan diisi oleh teks dari setiap item slider:

<figure id="slider">     <div class="container">         <img src="img/slide-1.jpg" alt="Beberapa Contoh Modifikasi Slideshow jQuery Beberapa Contoh Modifikasi Slideshow jQuery">         <img src="img/slide-2.jpg" alt="Beberapa Contoh Modifikasi Slideshow jQuery Beberapa Contoh Modifikasi Slideshow jQuery">         <img src="img/slide-3.jpg" alt="Beberapa Contoh Modifikasi Slideshow jQuery Beberapa Contoh Modifikasi Slideshow jQuery">         <img src="img/slide-4.jpg" alt="Beberapa Contoh Modifikasi Slideshow jQuery Beberapa Contoh Modifikasi Slideshow jQuery">     </div><figcaption></figcaption>  </figure> <nav id="slider-nav"></nav>

Supaya lebih semantik, Saya juga telah mengganti elemen #slider yang tadinya yaitu elemen divisi menjadi elemen figur. Lihat aba-aba di atas!

CSS

Setelah itu kita set beberapa perubahan pada aba-aba CSS:

/* Slider */ #slider {   display:block;   position:relative; }  /* Untuk caption */ #slider figcaption {   display:block;   background-color:black;   font:normal normal 11px/normal Arial,Sans-Serif;   color:white;   opacity:.8;   padding:10px 15px;   position:absolute;   right:0;   bottom:-100px; /* sembunyikan dengan cara ini :) */   left:0;   z-index:4; }  #slider img {   display:block;   margin:0;   width:300px; /* dimensi lebar */   height:200px; /* dimensi tinggi */   float:left; }

jQuery

Tangkap satu objek lagi dan simpan ke dalam variabel $caption, yaitu elemen <figcaption>:

$caption = $slider.find('figcaption');

Setelah itu, kita harus mengubah kebijaksanaan animasi slideshow, alasannya di sini kita gres saja menambahkan elemen caption. Langkah animasinya ibarat ini:

Pertama-tama, tampilkan teks slide awal ke dalam elemen <figcaption> sebagai awalan (dalam kasus ini Saya mengambil teks tersebut dari atribut alt pada masing-masing gambar). Ke dua yaitu langkah animasi. Urutannya:

  1. Sembunyikan caption
  2. Geser slider
  3. Ganti teks caption dengan deskripsi yang baru, lalu tampilkan caption.

Semuanya akan menjadi ibarat ini:

$nav.find('a').on("click", function() {     $nav.find('.active').removeClass('active');     $(this).addClass('active');     var pos = $(this).index() * $slider.width(),          text = $slide.eq($(this).index()).attr('alt'); // Mengambil teks dari atribut alt pada gambar ke-`$(this).index()`      // (1) Menyembunyikan caption...     $caption.stop().animate({bottom:'-100px'}, 400);      // (2) Menggeser slider...     $container.stop().animate({left:'-'+pos+'px'}, 600, function() {          // (3) Mengganti teks caption dengan deskripsi yang baru...         // lalu tampilkan caption dengan efek animasi properti 'bottom'         $caption.html(text).stop().animate({bottom:'0'}, 400);      });     clearInterval(autoSlide);     autoSlide = setInterval(slideShow, 3000);     return false; }).first().addClass('active');  // Sebagai awalan => tampilkan caption dengan deskripsi atribut alt dari slide pertama $caption.html($slide.first().attr('alt')).stop().animate({bottom:'0'}, 600);

Lainnya

Slideshow berupa gambar membutuhkan waktu lebih usang untuk memuat. Dan ketika proses pemuatan terjadi, biasanya kita akan melihat efek yang tidak elok dari gambar yang terpotong-potong. Cara termudah untuk mengatasi itu yaitu dengan menyembunyikan semua gambar terlebih dahulu sebelum termuat. Hingga ketika gambar sudah termuat, kita dapat menampilkannya:

/**  * Tip yang baik untuk slideshow berupa gambar:  * Sembunyikan tampilan hingga semua gambar benar-benar termuat...  * ... biar ketika gambar sedang dimuat, ia tidak merusak pemandangan kita :)  */  #slider .container, #slider figcaption {display:none} #slider-nav {opacity:0}
$(window).on("load", function() {      // Tampilkan '.container', 'figcaption' dan '#slide-nav' ketika halaman (semua gambar) telah termuat!     $container.show();     $caption.show();     $nav.css('opacity',1);      // Kemudian jalankan interval slideshow...     autoSlide = setInterval(slideShow, 3000);  });

Sementara gambar sedang memuat, kita tampilkan efek animasi loading dengan menambahkan latar berupa loading.gif biar slideshow menjadi lebih menarik dan komunikatif:

#slider {   background:white url('img/loading.gif') no-repeat 50% 50%; }

Lihat Demo

2. Efek Fade

CSS

Pembuatan efek fade dapat dilakukan dengan perhitungan yang lebih sederhana:

Konsep dasar slideshow dengan efek fade adalah: Semua gambar bertumpuk, dan masing-masing gambar bergantian menampilkan diri dengan efek peningkatan/penurunan pemudaran.

Sehingga, aba-aba CSS yang perlu kita ubah hanya ada pada bab ini:

#slider img {   display:block;   margin:0;   width:300px;   height:200px;   /* Gunakan posisi adikara untuk menumpuk masing-masing slide satu sama lain */   position:absolute;   top:0;   left:0; }

jQuery

Setelah itu, ada beberapa bab variabel yang dapat kita buang. Kita sudah tidak perlu lagi memakai variabel-variabel ini, alasannya semua slide sekarang berada dalam satu tumpukan!

var $slider = $('#slider'),     $caption = $slider.find('figcaption'),     $container = $slider.find('.container'),     $nav = $('#slider-nav'),     $slide = $container.children(),     s_length = $slide.length,s_wide = $slider.width() * s_length,s_height = $slider.height(),     autoSlide = null;

Efek animasi dapat dibentuk dengan jQuery .fadeIn() dan .fadeOut(). Seperti ini:

$nav.find('a').on("click", function() {      $nav.find('.active').removeClass('active');     $(this).addClass('active');      var pos = $(this).index() * $slider.width(),         text = $slide.eq($(this).index()).attr('alt');     $caption.stop().animate({bottom:'-100px'}, 400);      // Sembunyikan semua slide dengan efek .fadeOut() ...     // ... lalu tampilkan slide ke-`$(this).index()` dengan efek .fadeIn()     $slide.fadeOut(600).eq($(this).index()).fadeIn(600, function() {         $caption.html(text).stop().animate({bottom:'0'}, 400);     });      clearInterval(autoSlide);     autoSlide = setInterval(slideShow, 3000);      return false;  }).first().addClass('active');

Lainnya

Jangan lupa untuk menghilangkan latar animasi loading ketika semua gambar sudah termuat:

$(window).on("load", function() {     $slider.css('background-image','none'); });

Lihat Demo


Sumber https://www.dte.web.id/

Beberapa Tumpuan Modifikasi Slideshow Jquery

Beberapa Contoh Modifikasi Slideshow jQuery Beberapa Contoh Modifikasi Slideshow jQuery

Artikel ini merupakan kelanjutan dari artikel jQuery Slideshow Otomatis dengan Navigasi Angka

1. Slideshow dengan Caption

HTML

Untuk menciptakan slideshow dengan caption, kita memerlukan beberapa langkah perubahan. Pertama-tama, kita ganti elemen <div class="slide"> dengan <img>. Kemudian sisipkan elemen <figcaption> ke dalam #slider. Bagian inilah yang nantinya akan diisi oleh teks dari setiap item slider:

<figure id="slider">     <div class="container">         <img src="img/slide-1.jpg" alt="Beberapa Contoh Modifikasi Slideshow jQuery Beberapa Contoh Modifikasi Slideshow jQuery">         <img src="img/slide-2.jpg" alt="Beberapa Contoh Modifikasi Slideshow jQuery Beberapa Contoh Modifikasi Slideshow jQuery">         <img src="img/slide-3.jpg" alt="Beberapa Contoh Modifikasi Slideshow jQuery Beberapa Contoh Modifikasi Slideshow jQuery">         <img src="img/slide-4.jpg" alt="Beberapa Contoh Modifikasi Slideshow jQuery Beberapa Contoh Modifikasi Slideshow jQuery">     </div><figcaption></figcaption>  </figure> <nav id="slider-nav"></nav>

Supaya lebih semantik, Saya juga telah mengganti elemen #slider yang tadinya yaitu elemen divisi menjadi elemen figur. Lihat aba-aba di atas!

CSS

Setelah itu kita set beberapa perubahan pada aba-aba CSS:

/* Slider */ #slider {   display:block;   position:relative; }  /* Untuk caption */ #slider figcaption {   display:block;   background-color:black;   font:normal normal 11px/normal Arial,Sans-Serif;   color:white;   opacity:.8;   padding:10px 15px;   position:absolute;   right:0;   bottom:-100px; /* sembunyikan dengan cara ini :) */   left:0;   z-index:4; }  #slider img {   display:block;   margin:0;   width:300px; /* dimensi lebar */   height:200px; /* dimensi tinggi */   float:left; }

jQuery

Tangkap satu objek lagi dan simpan ke dalam variabel $caption, yaitu elemen <figcaption>:

$caption = $slider.find('figcaption');

Setelah itu, kita harus mengubah kebijaksanaan animasi slideshow, alasannya di sini kita gres saja menambahkan elemen caption. Langkah animasinya ibarat ini:

Pertama-tama, tampilkan teks slide awal ke dalam elemen <figcaption> sebagai awalan (dalam kasus ini Saya mengambil teks tersebut dari atribut alt pada masing-masing gambar). Ke dua yaitu langkah animasi. Urutannya:

  1. Sembunyikan caption
  2. Geser slider
  3. Ganti teks caption dengan deskripsi yang baru, lalu tampilkan caption.

Semuanya akan menjadi ibarat ini:

$nav.find('a').on("click", function() {     $nav.find('.active').removeClass('active');     $(this).addClass('active');     var pos = $(this).index() * $slider.width(),          text = $slide.eq($(this).index()).attr('alt'); // Mengambil teks dari atribut alt pada gambar ke-`$(this).index()`      // (1) Menyembunyikan caption...     $caption.stop().animate({bottom:'-100px'}, 400);      // (2) Menggeser slider...     $container.stop().animate({left:'-'+pos+'px'}, 600, function() {          // (3) Mengganti teks caption dengan deskripsi yang baru...         // lalu tampilkan caption dengan efek animasi properti 'bottom'         $caption.html(text).stop().animate({bottom:'0'}, 400);      });     clearInterval(autoSlide);     autoSlide = setInterval(slideShow, 3000);     return false; }).first().addClass('active');  // Sebagai awalan => tampilkan caption dengan deskripsi atribut alt dari slide pertama $caption.html($slide.first().attr('alt')).stop().animate({bottom:'0'}, 600);

Lainnya

Slideshow berupa gambar membutuhkan waktu lebih usang untuk memuat. Dan ketika proses pemuatan terjadi, biasanya kita akan melihat efek yang tidak elok dari gambar yang terpotong-potong. Cara termudah untuk mengatasi itu yaitu dengan menyembunyikan semua gambar terlebih dahulu sebelum termuat. Hingga ketika gambar sudah termuat, kita dapat menampilkannya:

/**  * Tip yang baik untuk slideshow berupa gambar:  * Sembunyikan tampilan hingga semua gambar benar-benar termuat...  * ... biar ketika gambar sedang dimuat, ia tidak merusak pemandangan kita :)  */  #slider .container, #slider figcaption {display:none} #slider-nav {opacity:0}
$(window).on("load", function() {      // Tampilkan '.container', 'figcaption' dan '#slide-nav' ketika halaman (semua gambar) telah termuat!     $container.show();     $caption.show();     $nav.css('opacity',1);      // Kemudian jalankan interval slideshow...     autoSlide = setInterval(slideShow, 3000);  });

Sementara gambar sedang memuat, kita tampilkan efek animasi loading dengan menambahkan latar berupa loading.gif biar slideshow menjadi lebih menarik dan komunikatif:

#slider {   background:white url('img/loading.gif') no-repeat 50% 50%; }

Lihat Demo

2. Efek Fade

CSS

Pembuatan efek fade dapat dilakukan dengan perhitungan yang lebih sederhana:

Konsep dasar slideshow dengan efek fade adalah: Semua gambar bertumpuk, dan masing-masing gambar bergantian menampilkan diri dengan efek peningkatan/penurunan pemudaran.

Sehingga, aba-aba CSS yang perlu kita ubah hanya ada pada bab ini:

#slider img {   display:block;   margin:0;   width:300px;   height:200px;   /* Gunakan posisi adikara untuk menumpuk masing-masing slide satu sama lain */   position:absolute;   top:0;   left:0; }

jQuery

Setelah itu, ada beberapa bab variabel yang dapat kita buang. Kita sudah tidak perlu lagi memakai variabel-variabel ini, alasannya semua slide sekarang berada dalam satu tumpukan!

var $slider = $('#slider'),     $caption = $slider.find('figcaption'),     $container = $slider.find('.container'),     $nav = $('#slider-nav'),     $slide = $container.children(),     s_length = $slide.length,s_wide = $slider.width() * s_length,s_height = $slider.height(),     autoSlide = null;

Efek animasi dapat dibentuk dengan jQuery .fadeIn() dan .fadeOut(). Seperti ini:

$nav.find('a').on("click", function() {      $nav.find('.active').removeClass('active');     $(this).addClass('active');      var pos = $(this).index() * $slider.width(),         text = $slide.eq($(this).index()).attr('alt');     $caption.stop().animate({bottom:'-100px'}, 400);      // Sembunyikan semua slide dengan efek .fadeOut() ...     // ... lalu tampilkan slide ke-`$(this).index()` dengan efek .fadeIn()     $slide.fadeOut(600).eq($(this).index()).fadeIn(600, function() {         $caption.html(text).stop().animate({bottom:'0'}, 400);     });      clearInterval(autoSlide);     autoSlide = setInterval(slideShow, 3000);      return false;  }).first().addClass('active');

Lainnya

Jangan lupa untuk menghilangkan latar animasi loading ketika semua gambar sudah termuat:

$(window).on("load", function() {     $slider.css('background-image','none'); });

Lihat Demo


Sumber https://www.dte.web.id/