jScrollPane - cross browser styleable scrollbars with jQuery and CSS

jScrollPane is a cross-browser jQuery plugin by Kelvin Luck which converts a browser's default scrollbars (on elements with a relevant overflow property) into an HTML structure which can be easily skinned with CSS.

jScrollPane is designed to be flexible but very easy to use. After you have downloaded and included the relevant files in the head of your document all you need to to is call one javascript function to initialise the scrollpane. You can style the resultant scrollbars easily with CSS or choose from the existing themes. There are a number of different examples showcasing different features of jScrollPane and a number of ways for you to get support.

How to use

It is very simple to use jScrollPane. You will need to download the necessary files and place them on your server. Then you just need to include the relevant files in the <head> of your document:

<!-- styles needed by jScrollPane -->
<link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />

<!-- latest jQuery direct from jQuery CDN -->
<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js">

<!-- the mousewheel plugin - optional to provide mousewheel support -->
<script type="text/javascript" src="script/jquery.mousewheel.js"></script>

<!-- the jScrollPane script -->
<script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>

Then you just need to initialise jScrollPane on document.ready (using a selector which will find the content you want to apply jScrollPane to):


There are plenty of different ways to use jScrollPane - either passing in different settings when you initialise it or by using the API. Each of these different use cases is covered by an example linked to from below.


You can always find the latest code for jScrollPane on its github page. You can either check out this entire website (including all examples) via git, or you can use the handy github functionality to download a zip of the repository.

The particular files that you need are:

Simple examples/ tests

These examples show very basic functionality and exist so that I can test that any changes to jScrollPane work cross browser and don't cause any new problems. Note that these examples aren't meant to look pretty, they merely highlight different bits of functionaity which are available. If you want examples of jScrollPane looking good then check out the themes.


You can style jScrollPane however you like using simple CSS. To give you some ideas, here are a variety of different themes which you are free to download and use or modify:


Before trying to get support please check if your problem is a known issue or if it is mentioned in the FAQs. If your issue is a new one and you can't find any information about it then you can try one of the following two options:

If you have contacted support and established that your problem is definitely a bug then you can raise an issue on the project's github site.


jScrollPane was originally developed in December 2006. Since then it has been constantly updated to fix bugs and add new features. The change history since November 2008 is available in the jScrollPane git repository. In August 2010 a major rewrite was undertaken, starting from a blank canvas and adding long awaited features like horizontal scrolling and automatic reinitialisation. If you want to find old versions of jScrollPane then you can check out the changelog.


Thanks to Hoppermagic for creating the jScrollPane logo! And thanks to Mark Reed, Philip Leff and Erwin Odendaal for sponsoring the development of v2 of this plugin (particularly to enable horizontal scrolling).

jScrollPane is a personal project that is open source for anybody to use as they want to. If you (and your clients!) like jScrollPane then please consider donating to it's ongoing development. You can do so via Pledgie or Paypal using the images below:

Click here to lend your support to: jScrollPane and make a donation at www.pledgie.com !