Monday, June 11, 2012

Draggable Tanpa jQuery UI

Draggable Without jQuery UI
$(function() {
    $('body').on('mousedown', 'div', function() {
        $(this).addClass('draggable').parents().on('mousemove', function(e) {
            $('.draggable').offset({
                top: e.pageY - $('.draggable').outerHeight() / 2,
                left: e.pageX - $('.draggable').outerWidth() / 2
            }).on('mouseup', function() {
                $(this).removeClass('draggable');
            });
        });
        e.preventDefault();
    }).on('mouseup', function() {
        $('.draggable').removeClass('draggable');
    });
});

Lihat Demo Kejutan =)

Pembaharuan 26 Februari 2013

Kode di atas kurang cerdas karena jQuery hanya memposisikan kursor di tengah elemen bergerak. Di sini Saya sudah membuat plugin sederhana yang lebih cerdas dan dapat menyesuaikan posisi pointer terhadap elemen, tidak harus selalu di tengah elemen:

Lihat Demo Telah Dihosting

Penggunaan

jQuery

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="//cdn.rawgit.com/tovic/dte-project/3c9ce0ac972ba889fc06e0374c866dd034198684/jquery-draggable/draggable.min.js"></script>
<script>
$(function() {
    $('.box').drags();
});
</script>

HTML

<div class="box">Saya bisa digeser...</div>

Labels: , ,

15 Comments:

At Tuesday, June 12, 2012 at 5:34:00 AM GMT+7, Blogger MUX SPARROW said...

Whoaaa!! makin dahsyat aja ni Mas Taufik! :-bd \o/

 
At Tuesday, June 12, 2012 at 8:05:00 PM GMT+7, Blogger Unknown said...

Bang kalau tidak salah ini juga bisa untuk buat untuk buat logo DTE yang diheader itu bukan..?? kapan-kapan kita main catur aja dh bang jangan mikirin kode dulu biar saya bisa menghabiskan banyak kopi dan rokok sambil main catur...
saya baru tau kalau ada daftar member aktif ternyata mampang juga saya no punggung 57 kayaknya jauh banget dari alam, zhin, dan bayu. bisa tidak naik kelas ini heheheeeee

 
At Wednesday, June 13, 2012 at 3:48:00 PM GMT+7, Blogger Taufik Nurrohman said...

@Suwardi Unggit Sayangnya logo DTE di atas bentuknya link, jadi seandainya dibuat draggable, saat mulai nge-drag yang jadi malah ngeklik link :D
Saya nggak pinter main catur.

 
At Wednesday, June 13, 2012 at 10:33:00 PM GMT+7, Blogger Beben Koben said...

itu catur lawannya siapa???

 
At Monday, June 18, 2012 at 6:27:00 PM GMT+7, Blogger Andy Nur said...

Mantep Kang \o/ , saya mau lanjut nge Save page2 di blog ini.
:D

 
At Friday, August 24, 2012 at 3:47:00 PM GMT+7, Anonymous Anonymous said...

Iya mantep banget, asik nih kalau dijadiin game catur buat blog :D

 
At Wednesday, September 26, 2012 at 10:46:00 AM GMT+7, Anonymous Anonymous said...

udah lama nyerah, pas di coba lagi baru ngeuh.
skrng udah bisa di geser2 post hoempagenya :-bd

 
At Tuesday, December 4, 2012 at 12:16:00 PM GMT+7, Anonymous Anonymous said...

keren keren, cuma agak dikit lag waktu digeser dgn cepat.
coding dari plugin jquery dalam hal ini menang dalam hal smoothnya, ^^.
tapi tetep mantap gan, terus bercoding ria dan jgn lupa share, hehe.

 
At Wednesday, May 29, 2013 at 6:25:00 PM GMT+7, Blogger Unknown said...

Hi,

Great plugin, thanks! Is it possible to make it not follow links when you drag a box by a link inside it?

 
At Wednesday, May 29, 2013 at 7:08:00 PM GMT+7, Blogger Taufik Nurrohman said...

Yes:

$(function() {
$('.box').drags().find('a').click(function() {
return false; // Disable links inside the `.box`
});
});

 
At Monday, September 30, 2013 at 1:35:00 AM GMT+7, Blogger Carlos said...

Brilliant Cheers

 
At Monday, March 3, 2014 at 7:05:00 PM GMT+7, Blogger bagusa4 said...

Mas mau tanya saya kan makai jquery ui,sama modal dialog.
Nagh saya ingin agar modal dialog ini bisa di drag,sudah bisa di drag namun saat di drag,dialognya malah melesat jauh dari mouse .. nagh cara ngebenerinya gimana ???
Nagh Ini Contohnya ... >>> https://googledrive.com/host/0BxlJMO68thzAcjBYT0wyaXgxSGc/index.html.....,,,, mohon di bantu :)

 
At Tuesday, March 4, 2014 at 12:01:00 AM GMT+7, Blogger Taufik Nurrohman said...

Pakai plugin Saya yang di atas saja mas, jangan pakai JQuery UI:

<script src="draggable.min.js"></script>
<script>
$(function() {
$('.md-content').drags({
handle: "h3:first"
});
});
</script>


Tambahkan juga kode CSS ini untuk menetralkan CSS transisi supaya langkahnya tidak berat:

.md-content.draggable {
-webkit-transition-duration:0s;
-moz-transition-duration:0s;
-ms-transition-duration:0s;
-o-transition-duration:0s;
transition-duration:0s;
}

 
At Tuesday, March 4, 2014 at 2:54:00 PM GMT+7, Blogger bagusa4 said...

Wah makasih mas .. :D saya akan langsung coba :)

 
At Tuesday, March 4, 2014 at 3:01:00 PM GMT+7, Blogger bagusa4 said...

Makasih mas setelah saya coba berhasil :D
tapi kalau saya tetap pasang jquery ui apakah nggak pengaruh sama plugin nya mas Taufik ???

 

Post a Comment

<< Home