• Home
  • Disclaimer
  • Privacy Policy
  • Sitemaps

Pinguin Techno

Select Menu
  • Home
  • Blogging
  • Sumber Artikel
  • Tools
    • Font Awesome
    • HTML Editor
    • HTML Encrypter
    • Code Color
    • Responsive Cek
  • Error Page
Home » jQuery » Scrollbar Visibility with jScrollPane

Wednesday, 5 February 2014

Scrollbar Visibility with jScrollPane

Unknown
Add Comment
jQuery
Wednesday, 5 February 2014
Kadang-kadang bisa sangat berguna untuk menyembunyikan scrollbar dalam sebuah situs web dan hanya terlihat ketika pengguna benar-benar membutuhkannya. The real-time aktivitas pakan di Facebook adalah contoh untuk perilaku seperti itu. Hari ini saya ingin menunjukkan kepada Anda bagaimana menggunakan JScrollPane dan memperpanjang dengan fungsi untuk menyembunyikan scrollbar dan menampilkannya ketika Container onmouse hover / saat mouse diarahkan pada content yang di targetkan menggunakan Scrollbar.

Scrollbar Visibility with jScrollPane

  • Demo
  • Download


JScrollPane diciptakan oleh Kevin Luck dan Anda dapat membaca lebih lanjut di sini:
JScrollPane - cross scrollbar browser yang styleable dengan jQuery dan CSS

THE MARKUP

Contoh untuk markup yang digunakan dalam demo saya adalah sebagai berikut:
<div id="jp-container" class="jp-container">
<!-- content -->
</div>
Tag pada jp-kontainer tersebut yang akan discroll ke area konten.

CSS

Selain style untuk custom scrollbar JScrollPane, kita akan membuat Container Style:
.jp-container{
width:500px;
height:400px;
position:relative;
background:#fff;
border:1px solid #D8DFEA;
float:left;
}

JAVASCRIPT

Kita akan menggunakan plugin JScrollPane dengan fungsi baru untuk menampilkan dan menyembunyikan scrollbar:
// the element we want to apply the jScrollPane
var $el = $('#jp-container').jScrollPane({
verticalGutter : -16
}),

// the extension functions and options
extensionPlugin = {

extPluginOpts : {
// speed for the fadeOut animation
mouseLeaveFadeSpeed : 500,

// scrollbar fades out after
// hovertimeout_t milliseconds
hovertimeout_t : 1000,

// if set to false, the scrollbar will
// be shown on mouseenter and hidden on
// mouseleave
// if set to true, the same will happen,
// but the scrollbar will be also hidden
// on mouseenter after "hovertimeout_t" ms
// also, it will be shown when we start to
// scroll and hidden when stopping
useTimeout : false,

// the extension only applies for devices
// with width > deviceWidth
deviceWidth : 980
},
hovertimeout : null,
// timeout to hide the scrollbar

isScrollbarHover: false,
// true if the mouse is over the scrollbar

elementtimeout : null,
// avoids showing the scrollbar when moving
// from inside the element to outside, passing
// over the scrollbar

isScrolling : false,
// true if scrolling

addHoverFunc : function() {

// run only if the window has a width bigger than deviceWidth
if( $(window).width() <= this.extPluginOpts.deviceWidth ) return false;

var instance = this;

// functions to show / hide the scrollbar
$.fn.jspmouseenter = $.fn.show;
$.fn.jspmouseleave = $.fn.fadeOut;

// hide the jScrollPane vertical bar
var $vBar = this.getContentPane().siblings('.jspVerticalBar').hide();

/*
* mouseenter / mouseleave events on the main element
* also scrollstart / scrollstop
* @James Padolsey : http://james.padolsey.com/javascript/special-scroll-events-for-jquery/
*/
$el.bind('mouseenter.jsp',function() {

// show the scrollbar
$vBar.stop( true, true ).jspmouseenter();

if( !instance.extPluginOpts.useTimeout ) return false;

// hide the scrollbar after hovertimeout_t ms
clearTimeout( instance.hovertimeout );
instance.hovertimeout = setTimeout(function() {
// if scrolling at the moment don't hide it
if( !instance.isScrolling )
$vBar.stop( true, true ).jspmouseleave( instance.extPluginOpts.mouseLeaveFadeSpeed || 0 );
}, instance.extPluginOpts.hovertimeout_t );


}).bind('mouseleave.jsp',function() {

// hide the scrollbar
if( !instance.extPluginOpts.useTimeout )
$vBar.stop( true, true ).jspmouseleave( instance.extPluginOpts.mouseLeaveFadeSpeed || 0 );
else {
clearTimeout( instance.elementtimeout );
if( !instance.isScrolling )
$vBar.stop( true, true ).jspmouseleave( instance.extPluginOpts.mouseLeaveFadeSpeed || 0 );
}

});

if( this.extPluginOpts.useTimeout ) {

$el.bind('scrollstart.jsp', function() {

// when scrolling show the scrollbar
clearTimeout( instance.hovertimeout );
instance.isScrolling = true;
$vBar.stop( true, true ).jspmouseenter();

}).bind('scrollstop.jsp', function() {

// when stop scrolling hide the
// scrollbar (if not hovering it at the moment)
clearTimeout( instance.hovertimeout );
instance.isScrolling = false;
instance.hovertimeout = setTimeout(function() {
if( !instance.isScrollbarHover )
$vBar.stop( true, true ).jspmouseleave( instance.extPluginOpts.mouseLeaveFadeSpeed || 0 );
}, instance.extPluginOpts.hovertimeout_t );

});

// wrap the scrollbar
// we need this to be able to add
// the mouseenter / mouseleave events
// to the scrollbar
var $vBarWrapper = $('<div>').css({
position : 'absolute',
left : $vBar.css('left'),
top : $vBar.css('top'),
right : $vBar.css('right'),
bottom : $vBar.css('bottom'),
width : $vBar.width(),
height : $vBar.height()
}).bind('mouseenter.jsp',function() {

clearTimeout( instance.hovertimeout );
clearTimeout( instance.elementtimeout );

instance.isScrollbarHover = true;

// show the scrollbar after 100 ms.
// avoids showing the scrollbar when moving
// from inside the element to outside,
// passing over the scrollbar
instance.elementtimeout = setTimeout(function() {
$vBar.stop( true, true ).jspmouseenter();
}, 100 );

}).bind('mouseleave.jsp',function() {

// hide the scrollbar after hovertimeout_t
clearTimeout( instance.hovertimeout );
instance.isScrollbarHover = false;
instance.hovertimeout = setTimeout(function() {
// if scrolling at the moment
// don't hide it
if( !instance.isScrolling )
$vBar.stop( true, true ).jspmouseleave( instance.extPluginOpts.mouseLeaveFadeSpeed || 0 );
}, instance.extPluginOpts.hovertimeout_t );

});

$vBar.wrap( $vBarWrapper );

}

}

},

// the jScrollPane instance
jspapi = $el.data('jsp');

// extend the jScollPane by merging
$.extend( true, jspapi, extensionPlugin );
jspapi.addHoverFunc();
Terakhir semoga tutorial ini dapat memberikan Anda inspirasi.
Suka Artikel? Bagikan: Facebook Twitter Google+
0 Komentar untuk "Scrollbar Visibility with jScrollPane"

Newer Post Older Post Home
Subscribe to: Post Comments (Atom)

Entri Populer

  • 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...
  • Minima Responsive  Template
    Minima Responsive Template
    DEMO | DOWNLOAD Minima Responsive Blogger Template sempurna Untuk Blog Pribadi , modern dan sepenuhnya responsif (coba mengubah ...
  • Tutorial Membuat Koneksi WDS di Mikrotik
    Tutorial Membuat Koneksi WDS di Mikrotik
    Teori Dasar Wireless Distribution System (WDS) WDS (Wireless Distribution System) adalah sistem yang memungkinkan interkoneksi antar Access...
  • Mikrotik Tersambar Petir
    Mikrotik Tersambar Petir
    Sedikit sharing tentang sambaran petir di Mikrotik . Beberapa waktu lalu terjadi keanehan di jaringan yang saya kelola, dimana jaringan inte...
  • Cara Mengetahui Password Winbox Mikrotik
    Cara Mengetahui Password Winbox Mikrotik
    Lupa Username dan Password Mikrotik? Lupa Username dan Password di Winbox Mikrotik? Jika jawabannya Ya , maka anda berada di tempat yang t...
  • Claud Storage Gratis Untuk Penyimpanan Data Online
    Claud Storage Gratis Untuk Penyimpanan Data Online
    Claud Storage Gratis Untuk Penyimpanan Data Online - Sebelum masuk ke inti materi, saya terangkan sedikit tentang layanan cloud storage . Se...
  • Penjelasan Queue Tree & PCQ serta Penerapannya di Mikrotik
    Penjelasan Queue Tree & PCQ serta Penerapannya di Mikrotik
    Pengaturan dan managemen Bandwidth di Mikrotik tidak dapat lepas dari fitur Queue. Ada dua jenis Queue yang dapat digunakan di Mikrotik, ya...
  • Cara Memantau dan Memonitor Jaringan Mikrotik Menggunakan The Dude
    Cara Memantau dan Memonitor Jaringan Mikrotik Menggunakan The Dude
    Memantau dan memonitor jaringan mikrotik dan perangkat lainnya yang saling terhubung dapat dilakukan dengan mudah menggunakan aplikasi yang ...
  • Tutorial Shared Bandwidth Management Mikrotik Menggunakan Simple Queue
    Tutorial Shared Bandwidth Management Mikrotik Menggunakan Simple Queue
    Shared Bandwidth Management Mikrotik digunakan untuk mengalokasikan bandwidth tiap client dengan rate yang bervariasi tergantung aktif tida...
  • Minima Colored 2.1 Responsive
    Minima Colored 2.1 Responsive
    DOWNLOAD | DEMO Minima berwarna 2.1 Responsif Template Blogger sempurna Untuk Blog Pribadi , modern dan sepenuhnya responsif (coba...

Labels

Android (2) Artikel (37) Backup (2) Bandwidth Management (8) Blogging (63) Blogspot (9) Blokir Website (6) Bridging (2) Burst (1) CSS (38) Dasar Mikrotik (24) Desain Rumah (1) DHCP (2) DNS (4) Download (9) eBook (1) Email (1) Error (1) Facebook (18) Failover (2) Firewall Mikrotik (21) Game (1) Hack (1) Hotspot (8) IDM (1) Install (2) Internet (11) Joomla (1) jQuery (24) Kaos Mikrotik (2) Komputer (5) Lain-Lain (13) Layer 7 (4) Linux (1) Load Balance (3) Mikrotik (24) Mikrotik Lanjut (51) Mikrotik Outdoor (2) Modem (1) MTCNA (2) MUM (5) Netcut (2) Netwatch (4) Password (1) Petir (1) Photoshop (1) PoE (1) Power Mikrotik (3) Proxy (6) RB433 (1) RB751U-2HnD (6) RB951Ui-2HnD (4) Reset (3) RouterBoard (10) RouterOS (19) Routing (5) Scripting (4) Security (1) SEO (20) Setting Mikrotik (34) SMS (1) SXTG-2HND (1) Template (31) The Dude (1) Tools (4) Troubleshooting (1) Tunnel (1) Tutorial Mikrotik (58) Twitter (2) Upgrade (4) USB (1) USB Modem (3) User Manager (2) Virtual (7) VPN (1) Widget (32) Winbox (7) Windows (2) Wireless Mikrotik (13) Wireless P2P (5) Wireless Security (1) Wireless Tools (1) Wordpress (10)
Copyright 2014 Pinguin Techno - All Rights Reserved
Template By Jenny Psychicfio