Home > JQuery, JavaScript, Snippets > Membuat Slideshow Headline Berita Sederhana Dengan JQuery (+Efek Animasi)

Membuat Slideshow Headline Berita Sederhana Dengan JQuery (+Efek Animasi)

March 5th, 2009 8,317 views Leave a comment Go to comments

Jika berbicara tentang sarana interaktif pada web di era saat ini. Efek slideshow tentunya paling sering digunakan oleh website-website yang mengandung content berupa berita. Slideshow biasa diisi dengan rangkuman-rangkuman berita terkini (Headline) agar pengunjung dapat memantau perkembangan berita terkini dengan sajian efek slideshow yang menarik dan tidak akan cepat membuat pengunjung bosan.

Contoh slideshow yang akan kita bangun pada artikel kali ini adalah seperti gambar berikut:

Kunci dari pembuatan fasilitas ini pada halaman web anda adalah CSS + JavaScript. Untuk membuatnya pertama kali buat halaman HTML seperti ini:

<div id="divTrigger">
 <a href="javascript:;" onClick="openContent(this,'div1')" id="firstSlide">1</a>
 <a href="javascript:;" onClick="openContent(this,'div2')">2</a>
 <a href="javascript:;" onClick="openContent(this,'div3')">3</a>
 <a href="javascript:;" onClick="openContent(this,'div4')">4</a>
</div>
 
<div id="divContent">
 <div id="div1">
    <span class="title">Pemandangan Pantai</span>
 	<img src="images/img1.jpg" align="left" /> Pemandangan pantai memang menakjubkan, dengan berdiam diri sejenak dan
 	melihat pemandangan pantai niscaya kita akan mendapatkan kedamaian jiwa.
 </div>
 <div id="div2">
    <span class="title">Dua Pinguin</span>
 	<img src="images/img2.jpg" align="left" /> Pinguin adalah spesies makhluk hidup yang langka dan hanya terdapat pada
 	benua tertentu di bumi ini. Oleh karena itu kita penduduk dunia harus melestarikannya.
 </div>
 <div id="div3">
 	<span class="title">Pepohonan Sejuk</span>
 	<img src="images/img3.jpg" align="left" /> Ini adalah gambar wallpaper pilihan saya ketika sedang bekerja, dengan 
 	melihat gambar ini hati terasa menjadi lebih tenang.
 </div>
 <div id="div4">
 	<span class="title">Hujan Sakura</span>
 	<img src="images/img4.jpg" align="left" /> Menikmati bunga sakura bagi warga jepang adalah tradisi musiman yang 
 	menyenangkan pada saat memasuki musim dingin.
 </div>
</div>

Lalu persiapkan CSS seperti ini:

 #divTrigger a:link,#divTrigger a:visited{
	text-decoration: none; /* hilangkan garis bawah pada link */
	margin:4px 0px; /* memberi jarak antar link */
	padding: 1px 4px; /* menjadikan link seperti kotak */
	border: 1px solid #CCC;
	background-color: #FFF;
	color: #000;
 }
 /* link yang dilalui oleh mouse dan element dengan class='selected' akan mempunyai efek yang sama */
 #divTrigger a:hover,#divTrigger a:active,.selected{ 
	background-color: #00A;
	color: #FFF;
 }
 #divContent{
	margin-top:4px;
	border:1px solid #CCC;
	width: 300px;
	height: 220px;
	padding: 4px;
 }
 #divContent div{ 
	/* semua div di dalam element dengan id='divContent' akan di sembunyikan sementara */
	display:none
 }	
 .title{
	font-size: 16px;
	font-weight: bold;
	color: #006;
	text-decoration: underline;
	margin-bottom: 2px;
	display:block
 }

Dengan menggunakan framework JavaScript JQuery kita akan lebih mudah berkreasi dengan efek slideshow. Contoh script-nya seperti ini:

<script language="javascript" src="jquery.js"></script>
<script language="javascript">
 /* parameter untuk menjalankan fungsi openContent ini adalah 	 
	 1. Element trigger (link) yang akan membuka content apabila di click
	 2. Id dari content yang akan ditampilkan
  */
 /* Update 08 Maret 2009
	 -> Slideshow diberikan animasi otomatis berpindah-pindah content		 
 */
 // siapkan variable timer yang akan menyimpan fungsi animasi 
 var timer = null; 
 function openContent(trigger,divID){ 
	// semua link pada div dengan id='divTrigger' akan di setarakan style-nya menjadi style normal 
	$('#divTrigger a').each( 
		function(){
			$(this).css({'background-color':'#FFF','color':'#000'});			 	
		}
	);
	// semua div di dalam element dengan id='divContent' disembunyikan
	$('#divContent div').hide();
 
	// div yang akan ditampilkan diberi efek fadeIn (built-in dari JQuery) ketika ditampilkan
	$('#'+divID).fadeIn('slow');
 
	// link menjadi trigger diberi style berbeda dengan link lainnya agar dapat diketahui content nomor berapa yang sedang aktif
	$(trigger).css({'background-color':'#00A','color':'#FFF'});	 	
 
	// Update 08 Maret 2009
	// timer di set 
	if(timer != null) clearTimeout(timer);
	timer = setTimeout( 
	  function(){		
		/* Cek terlebih dahulu apakah link yang sedang di-click saat ini ada link lagi setelah itu
		   apabila tidak ada link lagi setelah element yang sedang di-click maka pilih element link pertama
		   dengan selector ':first' dari jquery. Setelah sudah ditentukan link, maka lakukan event click
		   pada link tersebut. Setiap link yang di click akan menjalankan fungsi ini sehingga terjadi animasi
		   perpindahan content slideshow.
		*/	  
		var nextAnchor = ($(trigger).next('a').text() == '') ? $('#divTrigger a:first') : $(trigger).next('a');
		nextAnchor.click();
	  }, 3000 // 3 detik waktu perpindahan content
	);
 }	 
 $(document).ready(
	function(){
		// untuk permulaan, tampilkan content nomor pertama '#firstSlide' adalah id dari trigger yang akan membuka content nomor pertama
		openContent($('#firstSlide'),'div1');			
	}
 )
</script>

Update pada tanggal 08 Maret 2009:
Kini slideshow dapat secara otomatis berpindah-pindah content. Terima kasih
atas masukan para pengunjung web chandrajatnika.com.

Update pada tanggal 06 Mei 2009:
Download juga tutorial agar data slideshow dapat diambil dari database sehingga slideshow menjadi dinamis DISINI.

Demo aplikasi dapat anda lihat di Link ini

Download aplikasi lengkap pada Link ini

Semoga bisa bermanfaat… ^_^

(21 votes, average: 4.38 out of 5) KurangBiasaLumayanBagusLuar Biasa
Loading ... Loading ...
  1. newbie_bangetzz
    March 5th, 2009 at 18:29 | #1

    wah keren ni mas chandra atikelnya…
    sangat membantu sekali, kebetulan lagi nyari image slide show…

  2. harry
    March 6th, 2009 at 11:03 | #2

    keren ya!!!!

  3. Baronk
    March 8th, 2009 at 09:36 | #3

    Tenx Berat Om Ariel Peterpan..he..he.. habis wajahnya mirip Ariel peterpan seh

  4. Baronk
    March 8th, 2009 at 09:38 | #4

    Om mau naya nih gimana caeanya buat subdomain pakai PHP untuk setiap user yang mendaftar pada wbsite kita. Contohnya seperti di blogspot.com. Misalnya namasaya.blogspot.com

    Tenx ya!

  5. dee
    March 8th, 2009 at 11:34 | #5

    mas klu untuk automaticnya gimana ya, tanpa harus mnegklik page itu

  6. March 8th, 2009 at 16:37 | #6

    Oke saya update deh scriptnya agar bisa diberi animasi dan berpindah-pindah slideshow otomatis. Terima kasih atas masukannya.

  7. March 16th, 2009 at 10:54 | #7

    thanks tip & sourcenya.. amat membantu.

  8. March 21st, 2009 at 11:39 | #8

    kalo di wordpress pakai hosting bisa nggak…kalo bisa di mana letaknya…di plugin or di mana

  9. March 30th, 2009 at 11:59 | #9

    makasih om

  10. April 2nd, 2009 at 14:33 | #10

    apa kabar neh?
    keren deh tutorialnya

  11. heroik
    April 4th, 2009 at 22:33 | #11

    Kalo dihubungkan dengan sql gimana caranya??

  12. tamtam
    April 6th, 2009 at 12:12 | #12

    good tutorials

    klo buat berita terkait itu gimana ya?

  13. tin
    April 26th, 2009 at 21:23 | #13

    tiap file itu dipisah, atau disatukan di dalam 1 html?
    terimakasih

  14. April 27th, 2009 at 12:49 | #14

    untuk kasus di artikel ini semua slide ada di 1 halaman html

  15. yanto
    May 7th, 2009 at 09:30 | #15

    bagaimana cara mengambil data lewat database pak?…thx…mohon kasih conto,,thx

  16. May 7th, 2009 at 09:36 | #16

    sudah saya buatkan sebelumnya mas. coba lihat lagi di akhir-akhir artikel ini.
    ato lebih cepatnya menuju link ini http://downloads.chandrajatnika.com/Slideshow_Dinamis.pdf

  17. tomi
    May 9th, 2009 at 08:45 | #17

    artikelnya keren…
    ada YM?

  18. yanto
    May 11th, 2009 at 12:27 | #18

    pak…..kenapa isi dari tabelnya tidak muncul yah pak…salah dimana yah…thx

  19. ropiee
    May 11th, 2009 at 12:43 | #19

    ok pak…dah bisa…bagus sekali..thx

  20. yanto
    May 12th, 2009 at 10:33 | #20

    pak…kalo divcontentnya dalam beberapa column gimana yah pak..thx

  21. May 12th, 2009 at 10:55 | #21

    ya gampang aja di dalem div kmu kasih aja table, klo kurang besar div-nya kmu ubah lebar div dari CSS

  22. yanto
    May 12th, 2009 at 14:57 | #22

    ok pak…dah bisa…..seandainya lebih lanjut lagi pak….kalo judulnya di klik…trus ke buka semua berita….jsaya rubah fieldnya jadi berita_detail, berita_full……jadi kalau judulnya di klik lsg masuk ke berita fullnya…thx..mohon pencerahannya

  23. herman
    May 13th, 2009 at 18:22 | #23

    Thanks banget atas tutorialnya

  24. Uus Khusni
    June 3rd, 2009 at 12:14 | #24

    Selamat siang.

    Perkenalkan nama saya uus. Saya seorang staff IT di salah satu lembaga pemerintah. Saya kebetulan mendownload aplikasi tersebut dan saya akan aplikasin di Web kantor saya bekerja. Web tersebut saya hosting di Indosat dengan spesifikasi server menggunakan IIS, PHP 4.4.8 ketika saya upload aplikasi tersebut tidak berjalan sebagaimana mestinya. Trus saya coba dikomputer saya dengan settingan yang sama dengan server indosat yaitu menggunakan IIS dan PHP 4.4.8 dan berjalan lancar. Saya mohon masukannya Pak.

    Terimakasih

  25. hariez
    June 4th, 2009 at 15:17 | #25

    kok bisa ya…????
    heheheheee…
    1. trus klo mo mengentikan slide show otomatisnya gmn.
    2. disitukan tag href diisi dengan value = javascript:;, kalo g dipake g papakan, hehehee…
    3. kayaknya bagus bangeth dech kalo dijadiin slide image galery….
    yang link 1,2,3 dst tu diganti thumbnail foto yang udah diresize…
    pasti bagus..
    4. makasih tutornya..

  26. wai
    June 7th, 2009 at 14:45 | #26

    keren mas hanks berat

  27. June 17th, 2009 at 11:20 | #27

    Mantap banget.
    makaci ya

  28. July 22nd, 2009 at 17:58 | #28

    Cek..cek..cek…
    Ternyata anak BL..
    Sy jg anak BL angkatan 05 LOL….

  29. September 12th, 2009 at 01:37 | #29

    mas untuk topik slideshow berita headline dengan database tolong di angkat ke materi donk..soalnya saya lg butuh buat belajar. udah saya utak atik nga mau keluar field yg di database nya…

  30. October 11th, 2009 at 09:09 | #30

    mantabbssss,,,,mas,,,langsung ctrl+D

    tankyu

  31. October 16th, 2009 at 03:36 | #31

    terima kasih banget mas…

    kebetulan saya juga lagi butuh script ini…
    btw aku minta izin ya biar bisa dimuat di blog ku??
    aku nunggu izin dari mas dulu baru di posting…
    ^_^

  32. October 16th, 2009 at 10:04 | #32

    Silahkan dimuat, jangan lupa ikut sertakan sumber artikel, terima kasih. ^_^

  33. October 16th, 2009 at 14:44 | #33

    so pasti itu…
    makasih atas izinnya…
    kapan2 bisa mampir ke blog saya..hehehe

  34. November 24th, 2009 at 07:15 | #34

    tutorial yang mudah di mengerti dan di pahami .terimakasih

  35. dEsTa
    December 9th, 2009 at 19:32 | #35

    Mas, klo mau di tambah play/pause/stop gimana yach?
    Tolong y mas..
    Terimakasih

  36. s@s
    December 21st, 2009 at 13:00 | #36

    tengkiyu boss.. atas artikelnya..

  37. December 22nd, 2009 at 14:55 | #37

    aziiiib……..
    mkasih bgt .

  38. kind
    January 4th, 2010 at 00:58 | #38

    thanks for “T-10″

  39. Fajar ITS
    January 8th, 2010 at 08:39 | #39

    Luar biasa, terima kasih Pak.
    Ilmu yang sangat bermanfaat sekali.

  40. January 20th, 2010 at 12:55 | #40

    ilmu Yang Bermanfaat banget..
    trimakasih…

  41. caca
    March 23rd, 2010 at 14:25 | #41

    makasihhh berguna bgt!!!!!

  42. demazero
    June 15th, 2010 at 00:24 | #42

    mas chandra … thanks yah berguna banget nih .. tp mo tanya kalo daerah span nya saya mo tampilin slideup yang perlu saya tambah dibagian mana yah??? terima kasih

  43. June 15th, 2010 at 12:27 | #43

    maksudnya span di title? mau diberi slideup utk toggle content?
    bisa2 aja tinggal kasih link untuk toggle. span ganti div aja dan link itu di setup css float ke kanan jadi posisinya di sebelah kanan

  44. July 27th, 2010 at 14:02 | #44

    wah, ak juga mau buat yabf ini ah hehehe

  1. No trackbacks yet.