DTE :]

Tuesday, December 13, 2011

Efek-Efek jQuery UI

Mengingat bahwa jQuery UI adalah plugin, maka sintaks jQuery UI tidak sama dengan sintaks efek dalam jQuery. Bisa dibilang, jQuery UI hanya menyisipkan dirinya di dalam efek jQuery yang umum digunakan.

.show(), .hide() dan .toggle() adalah tiga bagian pokok yang akan selalu Anda pakai saat menjalankan efek jQuery UI. Selain itu ada satu lagi fungsi khusus untuk jQuery UI yaitu .effect()

Berbeda dengan .show(), .hide() dan .toggle() yang dapat mengubah visibilitas elemen, .effect() hanya berfungsi untuk membantu jQuery UI menjalankan animasi tanpa mengubah visibilitas elemen. (Biasanya digunakan untuk efek-efek emosional yang tidak memerlukan penghilangan/pemunculan elemen).

Dasar Penggunaan

Saat Anda menyembunyikan elemen dengan fungsi .hide(), maka Anda akan menuliskannya seperti ini:

$('div').hide(1000);

Sekarang Anda ingin menambahkan efek blind pada elemen yang akan Anda sembunyikan, maka Anda bisa menambahkan efek jQuery UI dengan cara seperti ini:

$('div').hide("blind", 1000);

Setiap efek memiliki beberapa opsi di dalamnya. Misalnya, secara default efek blind akan menutup elemen secara horizontal. Jika Anda ingin menciptakan efek penutupan secara vertikal, Anda tinggal menentukan opsi direction: "vertical" pada parameter opsi. Bagian opsi dibuat setelah nama efek dan dikelompokkan di dalam braket objek:

$('div').hide("blind", {
    direction: "vertical"
}, 1000);

Hal yang sama juga bisa dilakukan untuk .show(), .toggle() dan .effect(). .effect() hanya berguna jika diterapkan pada efek-efek emosional yang tidak memerlukan perubahan visibilitas elemen.

jQuery

$('div').hide(durasi);

jQuery UI

$('div').hide("nama_efek", {opsi1, opsi2, opsi3}, durasi);

Lihat Semua Demo

Lihat semua efeknya terlebih dahulu sebelum mempelajari ini:

Lihat Demo

Efek-Efek jQuery UI

blind

Efek jQuery UI ini tidak jauh berbeda dengan .slideDown() dan .slideUp(). Keistimewaannya adalah dapat diarahkan secara horizontal. Sesuatu yang selama ini tidak bisa dilakukan oleh .slideDown() dan .slideUp()

Opsi Nilai Deskripsi
direction "vertical" Membuka/menutup elemen secara vertikal
"horizontal" Membuka/menutup elemen secara horizontal
$('div').toggle("blind", {
    direction: "horizontal"
}, 1000);

bounce

Efek ini akan membuat elemen bergetar sebanyak opsi yang ditentukan dan akan mengarahkan getaran sesuai dengan arah direksinya.

Opsi Nilai Deskripsi
times 1, 2, 3, … Menentukan jumlah getaran
direction "up" Menggetarkan elemen ke atas
"down" Menggetarkan elemen ke bawah
"left" Menggetarkan elemen ke kiri
"right" Menggetarkan elemen ke kanan
$('div').effect("bounce", {
    direction: "up",
    times: 10
}, 1000);

clip

Efek ini akan menutup elemen menuju garis pusat atau membuka elemen dari garis pusat.

Opsi Nilai Deskripsi
direction "horizontal" Membuka/Menutup elemen dengan gerakan horizontal (garis pusat berupa garis vertikal)
"vertical" Membuka/Menutup elemen dengan gerakan vertikal (garis pusat berupa garis horizontal)
$('div').toggle("clip", {
    direction: "horizontal"
}, 1000);

drop

Efek ini akan menampilkan/menyembunyikan elemen dengan efek memudar bersamaan dengan perubahan letak sesuai dengan direksinya.

Opsi Nilai Deskripsi
direction "up" Perubahan tingkat transparasi dan perpindahan posisi elemen menuju ke atas
"down" Perubahan tingkat transparasi dan perpindahan posisi elemen menuju ke bawah
"left" Perubahan tingkat transparasi dan perpindahan posisi elemen menuju ke kiri
"right" Perubahan tingkat transparasi dan perpindahan posisi elemen menuju ke kanan
$('div').hide("drop", {
    direction: "up"
}, 1000);

explode

Ini adalah efek favorit Saya. Efek ini akan meledakkan elemen!

Opsi Nilai Deskripsi
pieces 1, 2, 3, … Menentukan jumlah potongan (default: 9)
$('div').hide("explode", {
    pieces: 36
}, 1000);

fold

Elemen akan dikenai efek melipat. Batas akhir lipatan bisa ditentukan dalam opsi. Default arah lipatan adalah vertikal kemudian horizontal.

Opsi Nilai Deskripsi
size 1, 2, 3, … Menentukan batas terkecil lipatan (default: 15)
"10%", "50%"
horizFirst true Menentukan apakah efek akan dimulai dari horizontal terlebih dahulu atau vertikal terlebih dahulu
false
$('div').hide("fold", {
    size: 10
}, 1000);

highlight

Elemen akan dikenai efek sorotan. Warna sorotan bisa ditentukan dalam opsi. Efek bisa berupa sorotan saja atau berupa sorotan kemudian menghilangkannya.

Opsi Nilai Deskripsi
color "#990000", "#ffa500", … Menentukan warna sorotan (default: #ffff99)
"red", "green", …
"rgb(0, 0, 0)", "rgb(255, 255, 255)"
mode "show" Menentukan apakah setelah elemen dikenai sorotan akan menghilang atau tetap seperti apa adanya (default: show)
"hide"
$('div').effect("highlight", {
    color: "#990000",
    mode: "hide"
}, 1000);

pulsate

Elemen akan dikenai efek berdenyut. Jumlah denyutan bisa ditentukan dalam opsi.

Opsi Nilai Deskripsi
times 1, 2, 3, … Menentukan banyaknya denyutan
$('div').effect("pulsate", {
    times: 2
}, 1000);

puff

Elemen akan dikenai efek embusan (membesar dan memudar). Besar elemen dapat ditentukan dalam opsi (persentase).

Opsi Nilai Deskripsi
percent 300, 400, 450, … Menentukan persentase perubahan ukuran elemen (default: 150)
$('div').hide("puff", {
    percent: 300
}, 1000);

scale

Efek ini akan menutup elemen dengan efek mengecil/membuka elemen dengan efek membesar.

Opsi Nilai Deskripsi
origin ["top", "left"] Elemen akan mengecil menuju kiri atas/membesar dari kiri atas (default: menuju ke tengah)
["top", "right"] Elemen akan mengecil menuju kanan atas/membesar dari kanan atas
["bottom", "left"] Elemen akan mengecil menuju kiri bawah/membesar dari kiri bawah
["bottom", "right"] Elemen akan mengecil menuju kanan bawah/membesar dari kanan bawah
$('div').toggle("scale", {
    origin: ["top", "left"]
}, 1000);

size

Efek ini akan mengubah ukuran elemen berdasarkan opsi yang telah ditentukan.

Opsi Nilai Deskripsi
to {width: 200, height: 300} // numerik Ukuran elemen akan berubah sesuai dengan ukuran yang telah ditentukan
{width: "50%", height: "20%"} // persentase
{width: "50%", height: 300} // kombinasi
$('div').effect("size", {
    to: {
        width: "50%",
        height: "20%"
    }
}, 1000);

shake

Elemen akan dikenai efek goncangan. Jumlah goncangan dan arah goncangan dapat ditentukan dalam opsi.

Opsi Nilai Deskripsi
times 1, 2, 3, … Menentukan jumlah goncangan
direction "up" Goncangan cenderung mengarah ke atas
"down" Goncangan cenderung mengarah ke bawah
"left" Goncangan cenderung mengarah ke kiri
"right" Goncangan cenderung mengarah ke kanan
$('div').effect("shake", {
    times: 7
}, 1000);

slide

Sepintas efeknya tampak sama dengan blind, tetapi sebenarnya ada sebuah perbedaan jika Anda memperhatikannya dengan teliti. blind akan menghilangkan elemen dimulai dari tempat awal gerakan, sedangkan slide akan menghilangkan elemen dimulai dari tempat terakhir gerakan:

jQuery UI - Effect
Perbedaan Blind dengan Slide.
Opsi Nilai Deskripsi
direction "up" Bergeser ke atas
"down" Bergeser ke bawah
"left" Bergeser ke kiri
"right" Bergeser ke kanan
$('div').toggle("slide", {
    direction: "left"
}, 1000);

transfer

Efek ini hanya digunakan untuk menunjukkan bahwa sesuatu saling berkaitan. Saat sebuah aksi dilakukan, maka elemen seolah-olah akan menuju ke suatu tempat yang telah ditentukan. Target bisa berupa objek elemen (kelas/ID) dalam selektor jQuery.

Opsi Nilai Deskripsi
to "#foo" Elemen akan ditransfer menuju elemen dengan ID foo
".bar" Elemen akan ditransfer menuju elemen dengan kelas bar
$('div').effect("transfer", {
    to: "#foo"
}, 1000);

Labels: ,

13 Comments:

  • demonya keren banget \o/ TAPI gak ngerti penerapannya gimana mas -_-"

    By Blogger Unknown, at Tuesday, October 16, 2012 at 6:50:00 PM GMT+7  

  • \o/ wew`baru keliatan tutorial kaya gini..!!
    Ijin share tambah sumber asli di sini :Q

    By Blogger azewBz, at Sunday, February 10, 2013 at 4:59:00 AM GMT+7  

  • kak Taufik, aku punya proyek seperti ini :
    $('.kontak').click(function() {
    $("#top-ribb").stop().animate({right:"20%"}, 500, function() {
    $("#top-ribb").stop().animate({top: -350}, 500, function() {
    $("#main-inner").fadeOut (1000, function() {
    $("#main-wrap").slideUp(500, function() {
    $("#main-wrap").slideDown(1000, function() {
    $("#form-kontak").fadeIn (1000)
    })
    })
    })
    })
    })
    })


    Ingin menerapkan seperti ini :

    $('.kontak').click(function() {
    $("#top-ribb").stop().animate({right:"20%"}, 500, function() {
    $("#top-ribb").stop().animate({top: -350}, 500, function() {
    $("#main-inner").fadeOut (1000, function() {
    $("#main-wrap").hide("blind", {direction:"vertical"}, 1000, function() {
    $("#main-wrap").show("blind", {direction:"vertical"}, 1000, function() {
    $("#form-kontak").fadeIn (1000)
    })
    })
    })
    })
    })
    })


    supaya main-wrap tertutup dengan efek blind vertical, tapi aku coba ulang-ulang gak ketemu caranya kak, apakah code yang aku buat itu salah, atau penerapannya yang kliru, saat ini code yang pertama saya terapkan di sagitasoft.com, mohon bantuannya kak ?

    By Blogger IRIL SAGITA, at Wednesday, July 17, 2013 at 6:48:00 AM GMT+7  

  • Atau begini juga tidak berfungsi kak :
    $('.kontak').click(function() {
    $("#top-ribb").stop().animate({right:"20%"}, 500,
    function() { $("#top-ribb").stop().animate({top: -300}, 500,
    function() { $("#main-wrap").toggle("slide", {direction:"Up"}, 1000,
    function() { $("#main-inner").fadeOut (1000,
    function() { $("#main-wrap").toggle("slide", {direction:"Down"}, 1000,
    function() { $("#form-kontak").fadeIn (1000)
    })
    })
    })
    })
    })
    })


    Tapi proyek saya dengan cara pertama kok berfungsi ya, tolong bantuannya ya kak ?

    By Blogger IRIL SAGITA, at Wednesday, July 17, 2013 at 7:20:00 AM GMT+7  

  • Selama JQuery UI tidak/belum diinstal, efek-efek seperti blind, explode, slide dan yang lainnya seperti yang Saya jelaskan di atas, tidak akan mungkin bisa bekerja. Malah akan membuat animasi menjadi error.

    By Blogger Taufik Nurrohman, at Wednesday, July 17, 2013 at 10:35:00 AM GMT+7  

  • Bener banget kak, ternyata masalahnya di JQuery UI nya belum saya masukkan, makasih banyak ?

    By Blogger IRIL SAGITA, at Wednesday, July 17, 2013 at 12:11:00 PM GMT+7  

  • SAYA GAK TAHU MAU KOMENTAR APA LAGI TERLALU MASTER.... BANG SY BISA PESAN DI EDITIN TAMPLE GAK??? BERAPA HARGANYA???

    By Blogger Sikkahoder, at Saturday, September 28, 2013 at 4:17:00 AM GMT+7  

  • Tergantung tingkat kesulitan, pak. Mungkin lebih baik dikomunikasikan lewat email saja. Terima kasih.

    By Blogger Taufik Nurrohman, at Saturday, September 28, 2013 at 7:04:00 AM GMT+7  

  • Mas mau nanya nih mas. kalau misalkan kita buat animasi, pada saat klik elemen dikenai efek, namun pada saat tombol ditutup, elemen tersebut kembeli kesedia awal, seperti tidak dikenai efek sama sekali.
    contohnya begini.
    $(".search-form").delay(1500, "easeInOutElastic").animate({ top: -100 })
    saat animasi berjalan, maka .search-from dikenai efek top: -100 padahal dipengaturan css .search-form top:65px.
    saya memakai begini sebagai penggantinya:
    $(".search-form").delay(1500, "easeInOutElastic").animate({ top: 65 })
    agar .search-form kembali kesedia awal.
    Pertanyaannya:
    1. Bagaimana caranya supaya semua animasi tersebut berhenti ketika mengklik tombol close??
    tanpa menggunakan yang seperti ini:
    $(".search-form").delay(1500, "easeInOutElastic").animate({ top: 65 })

    2. Mohon jawabannya yah mas. :(
    3. Terimakasih.

    By Blogger Unknown, at Saturday, April 12, 2014 at 9:31:00 PM GMT+7  

  • $('.close').click(function() {
    $('.search-form').stop().removeAttr('style');
    });

    By Blogger Taufik Nurrohman, at Friday, April 18, 2014 at 6:25:00 PM GMT+7  

  • terimakasih mas jawabannya. :)

    By Blogger Unknown, at Friday, April 18, 2014 at 8:39:00 PM GMT+7  

  • Mohon penjelasannya kak... apakah jquery-ui dapat bekerja pada Id yang mempunyai url . seperti contohnya hal : saya mengklik DAFTAR ISI setelah itu muncul Main-wrapper yang tergulung tanpa proses loading lagi. mungkin seperti Tombol "TENTANG"nya Mas Taufik.

    By Blogger Unknown, at Monday, November 30, 2015 at 10:22:00 AM GMT+7  

  • Pakai JQuery biasa juga bisa. Tinggal tambahkan return false:

    Demo: http://jsfiddle.net/tovic/pz03hkxk

    By Blogger Taufik Nurrohman, at Friday, December 11, 2015 at 8:12:00 PM GMT+7  

Post a Comment



<< Home