Artikel Copas 100%

Berbagi seadaanya.

Select Menu
  • Home
  • Blogging
    • Tutorial Blogspot
    • CSS
    • jQuery
    • Widget
  • Tools
    • Font Awesome
    • HTML Editor
    • HTML Encrypter
    • Code Color
    • Responsive Cek
  • Sitemap
  • Static Page
  • Error Page
Home » CSS » jQuery » Hover and Click Trigger for Circular Elements with jQuery

Rabu, 15 Januari 2014

Hover and Click Trigger for Circular Elements with jQuery

Add Comment
CSS, jQuery
Menerapkan a:hover pseudo-class untuk elemen secara luas dikenal sebagai classic �hovering� di atas sebuah elemen pada halaman web. Masalah yang muncul dengan diperkenalkannya properti border-radius. Hal ini menjadi ekstrim ketika kita membuat lingkaran dengan menetapkan batas-radius persegi sampai 50% (setengah dari lebar dan tinggi luarnya).


  • Demo
  • Download



Hari ini saya ingin berbagi salah satu solusi untuk masalah circle hovering. Kami akan membuat sebuah plugin yang akan mengurus 'mouseenter', 'mouseleave' dan 'klik'.

Cara kerjanya

Dalam contoh kita, kita akan membuat sebuah lingkaran dengan beberapa jenis efek hover. Struktur hanya akan menjadi:
<a href="#" id="circle" class="ec-circle">
<h3>Hovered</h3>
</a>

CSS

.ec-circle{
width: 420px;
height: 420px;
-webkit-border-radius: 210px;
-moz-border-radius: 210px;
border-radius: 50%;
text-align: center;
overflow: hidden;
font-family:'Kelly Slab', Georgia, serif;
background: #dda994 url(../images/1.jpg) no-repeat center center;
box-shadow:
inset 0 0 1px 230px rgba(0,0,0,0.6),
inset 0 0 0 7px #d5ad94;
transition: box-shadow 400ms ease-in-out;
display: block;
outline: none;
}
Sekarang, kita akan mendefinisikan sebuah class untuk efek hover tapi bukan pseudo-class :hover yang dinamis. Idenya adalah untuk menerapkan class ini maka dengan jQuery ketika kita memasuki area melingkar dari elemen tsb:
.ec-circle-hover{
box-shadow:
inset 0 0 0 0 rgba(0,0,0,0.6),
inset 0 0 0 20px #c18167,
0 0 10px rgba(0,0,0,0.3);
}
Ketika kita memiliki JavaScript yg dinonaktifkan, kita akan menambahkan pseudo-class. CSS Style ini dapat ditemukan di noscript.css:
.ec-circle:hover{
box-shadow:
inset 0 0 0 0 rgba(0,0,0,0.6),
inset 0 0 0 20px #c18167,
0 0 10px rgba(0,0,0,0.3);
}

JavaScript

$.CircleEventManager            = function( options, element ) {

this.$el = $( element );

this._init( options );

};

$.CircleEventManager.defaults = {
onMouseEnter : function() { return false },
onMouseLeave : function() { return false },
onClick : function() { return false }
};

$.CircleEventManager.prototype = {
_init : function( options ) {

this.options = $.extend( true, {}, $.CircleEventManager.defaults, options );

// set the default cursor on the element
this.$el.css( 'cursor', 'default' );

this._initEvents();

},
_initEvents : function() {

var _self = this;

this.$el.on({
'mouseenter.circlemouse' : function( event ) {

var el = $(event.target),

circleWidth = el.outerWidth( true ),
circleHeight = el.outerHeight( true ),
circleLeft = el.offset().left,
circleTop = el.offset().top,
circlePos = {
x : circleLeft + circleWidth / 2,
y : circleTop + circleHeight / 2,
radius: circleWidth / 2
};

// save cursor type
var cursor = 'default';

if( _self.$el.css('cursor') === 'pointer' || _self.$el.is('a') )
cursor = 'pointer';

el.data( 'cursor', cursor );

el.on( 'mousemove.circlemouse', function( event ) {

var distance = Math.sqrt( Math.pow( event.pageX - circlePos.x, 2 ) + Math.pow( event.pageY - circlePos.y, 2 ) );

if( !Modernizr.borderradius ) {

// inside element / circle
el.css( 'cursor', el.data('cursor') ).data( 'inside', true );
_self.options.onMouseEnter( _self.$el );

}
else {

if( distance <= circlePos.radius && !el.data('inside') ) {

// inside element / circle
el.css( 'cursor', el.data('cursor') ).data( 'inside', true );
_self.options.onMouseEnter( _self.$el );

}
else if( distance > circlePos.radius && el.data('inside') ) {

// inside element / outside circle
el.css( 'cursor', 'default' ).data( 'inside', false );
_self.options.onMouseLeave( _self.$el );

}

}

});

},
'mouseleave.circlemouse' : function( event ) {

var el = $(event.target);

el.off('mousemove');

if( el.data( 'inside' ) ) {

el.data( 'inside', false );
_self.options.onMouseLeave( _self.$el );

}

},
'click.circlemouse' : function( event ) {

// allow the click only when inside the circle

var el = $(event.target);

if( !el.data( 'inside' ) )
return false;
else
_self.options.onClick( _self.$el );

}
});

},
destroy : function() {

this.$el.unbind('.circlemouse').removeData('inside').removeData('cursor');

}
};
Dalam contoh kita akan menerapkan Plugin ke elemen terkait. Dalam masalah ini kita harus menambahkan hover class on �mouseenter� dan removing it on �mouseleave�..
$('#circle').circlemouse({
onMouseEnter : function( el ) {

el.addClass('ec-circle-hover');

},
onMouseLeave : function( el ) {

el.removeClass('ec-circle-hover');

},
onClick : function( el ) {

alert('clicked');

}
});
Ingat bahwa �normal� pseudo hover class juga didefinisikan dalam noscript.css yang akan diterapkan ketika JavaScript dinonaktifkan.

  • Demo
  • Download



Sekian tutorial mengenai Hover and Click Trigger for Circular Elements with jQuery! Saya harap Anda menikmati tutorial ini dan menemukan inspirasi!
Suka Artikel? Bagikan: Facebook Twitter Google+
0 Komentar untuk "Hover and Click Trigger for Circular Elements with jQuery"

Posting Lebih Baru Posting Lama Beranda
Langganan: Posting Komentar (Atom)

Popular Week

  • EDU Backlink
    EDU Backlink
    Backlink .EDU sekarang ini masih menjadi incaran bagi para blogger untuk menaikkan ranking situs/blog mereka, tapi kadang-kadang kita meras...
  • Bosan Dengan Dunia Blogger..
    Bosan Dengan Dunia Blogger..
    Selamat pagi sobat semua.. Mungkin anda sudah merasakan suatu kejenuhan yang anda alami saat ini dengan blog anda mungkin pertama anda membu...
  • About This Tattoo
    About This Tattoo
    Apa itu Tattoo? Dalam Bahasa Indonesia disebut dengan istilah "Rajah". Tattoo merupakan produk dari Body Decorating dengan mengga...
  • Opini Tentang Blog Ini
    Opini Tentang Blog Ini
    Sejauh ini saya sudah merasa bersalah dengan apa yang saya share.  Beberapa hal gak penting terkadang juga saya share sampai sampai sobat bi...
  • Optimasi Posting Blog
    Optimasi Posting Blog
    Yang namanya sebuah blog, tentu tidak terlepas dari posting. Posting dalam blogger merupakan sebuah "entry" yang ditulis dengan me...
  • 7 Apps Android Untuk Pengguna Blogger
    7 Apps Android Untuk Pengguna Blogger
    Dibawah ini adalah 7 AplikasiAdroid yang populer dan banyak digunakan oleh pengguna Blogger. Dan sebagai seorang pengguna blogger tidak ada ...
  • Free Download Smadav 9.3 Pro Full Version + Serial Number
    Free Download Smadav 9.3 Pro Full Version + Serial Number
    Semenjak Blogger saya di hapus saya jarang update di Faceblog jadi ketinggalan software yang sudah update deh, tapi gak apa apa daripada g...
  • Menampilkan Pesan Pada Jam Tertentu
    Menampilkan Pesan Pada Jam Tertentu
    Pernah terpikirkan untuk menampilkan pesan pada jam tertentu (Time Message) pada blog kita? tentu saja ya, Ada kalanya ketika sedang tidak o...
  • Scattered Polaroids Gallery (Tersebar)
    Scattered Polaroids Gallery (Tersebar)
    Sebuah flat bergaya Polaroid Galeri di mana item-item (di sini saya gunakan foto) yang tersebar secara acak dalam sebuah wadah (Container). ...
  • Karma - Creative Landing Page Blogger Templates
    Karma - Creative Landing Page Blogger Templates
    Karma adalah template untuk blogger yang menyediakan banyak fitur yang luar biasa yang paling canggih. Template ini sangat maju, mungkin sed...
Diberdayakan oleh Blogger.

Labels

  • Android
  • Blogging
  • CSS
  • Facebook
  • Game
  • jQuery
  • Komputer
  • Lain-Lain
  • Photoshop
  • SEO
  • Software
  • Template
  • Twitter
  • Widget

Blog Archive

  • ▼  2014 (101)
    • ►  Juli (5)
    • ►  Juni (10)
    • ►  Mei (12)
    • ►  April (12)
    • ►  Maret (11)
    • ►  Februari (14)
    • ▼  Januari (37)
      • Pop Up Facebook Like Box With Lightbox Effect Vali...
      • Dynamic Mag Responsive Blogger Template
      • Adobe Photoshop Cs6
      • Headline Breaking News di Blog
      • Faster Vsand Blogger Templates SEO Valid HTML5 Res...
      • Loading Page Blogger
      • Floating Social Share Buttons for Blogger
      • Recent Comment Blogger Valid HTML5
      • Recent Posts Slider With Navigation
      • List Icon Font Awesome dan CSS Value Content V4.0.3
      • Tips SEO Dari Google [Download]
      • Karma - Creative Landing Page Blogger Templates
      • Compact News Previewer with jQuery
      • Polaroid Photobar Gallery with jQuery
      • Hover and Click Trigger for Circular Elements with...
      • CSS3 Lightbox
      • jQuery Image Slider With Three Panels and 3D Look
      • Accordion Style Slider with Valid CSS3
      • Slide Show jQuery Carousel
      • Menambah Tombol Open / Close pada Blog
      • 7 Apps Android Untuk Pengguna Blogger
      • Timely Alarm Clock - Bitspin Sekarang Gratis Setel...
      • Aplikasi Kamera Android Terbaik Pilihan 2014
      • Icon Social Share dengan Tooltip
      • Membuat Google Custom Search Engine di Blogger
      • Popular Posts Multi Color Flat UI
      • Photo Collage Max 2.2.5.6 Full Crack
      • Blackberry Messenger for PC
      • RespoAum Responsive Blogger Template
      • Elegant Photography Blogger Template
      • News Pro Responsive Blogger Template
      • iNews 2014 Responsive Blogger Template
      • Label Cloud CSS Blogger (Versi Hijau)
      • Widget Kotak Berlangganan With Sosial Icons
      • Cara Mengaktifkan dan Setting Robot.txt Pada Blog
      • Membuat Breadcrumbs Terindex Oleh Google
      • Cara Membuat Menu Navigasi Vertical Di Blog
  • ►  2013 (71)
    • ►  Desember (13)
    • ►  November (6)
    • ►  Agustus (1)
    • ►  Juni (8)
    • ►  Mei (33)
    • ►  April (10)

Labels

  • Android
  • Blogging
  • CSS
  • Facebook
  • Game
  • jQuery
  • Komputer
  • Lain-Lain
  • Photoshop
  • SEO
  • Software
  • Template
  • Twitter
  • Widget

Labels

  • Android
  • Blogging
  • CSS
  • Facebook
  • Game
  • jQuery
  • Komputer
  • Lain-Lain
  • Photoshop
  • SEO
  • Software
  • Template
  • Twitter
  • Widget

About Me

Unknown
Lihat profil lengkapku or visit on

© Artikel Copas 100% powered by Blogger.com.
All Right Reserved.