Pretty, customisable, cross browser replacement scrollbars

Overview

jScrollPane - cross browser custom scroll bars

jScrollPane is a jQuery plugin which allows you to replace a browser's default scroll bars (on an element which has overflow: auto) with a HTML structure that can be easily skinned using CSS.

To see a bunch of examples of jScrollPane in action please visit the jScrollPane website. All of the code for the website is available from this repository so please feel free to download and use it!

How to get it

CDN

Up-to-date CDN version is kindly provided by: CDNJS jScrollPane

NPM

Up-to-date Node version jScrollPane is also available from NPM.

Ruby on Rails

jScrollPane packed as Ruby gem is also available.

Issues

Please feel free to make Bug reports against project but if you are making Issue in this project please read below.

Every Issue should have these

  • Brief topic which describes Issue
  • Short explanation about bug
  • Provide Browser info (version and platform) which have been used
  • Provide working example about Issue (JSFiddle or similar)

It would be nice to have these

  • Debug help about Issue if needed
  • Issue owner stays active until Issue is closed

Contributing

There is a simple grunt based build script in Gruntfile.js which will help to produce a minified version of jScrollPane if you make any modifications and want to submit a pull request.

To use it, make sure you have node, npm:

npm install

Then:

npm run build

Please remember to update the changelog in the comment at the header of both JS files when submitting a pull request.

Pull Request

These lines below may sound harsh or stop you making Pull Request. Please do Pull Request! This is very friendly project. These are just here because my time is very limited. So If you read lines below we all get along with less stress.

Please feel free to make Bug reports against project but Before making Pull Request please run your code against newest JSHint. Code with errors against JSHint won't be integrated or reviewed!.

Please also understand as Pull Request are made there is no time line or promise for that is would ever get integrated. This Volunteer organization and I do this when I have time. Remember everyone can help to review Pull Request.

If there is changes needed to make in Pull Request it's up to Pull Request owner to make sure they are corrected.

Pull Requests should at least have these

  • Pull Request should at least contain topic what it's changing
  • Brief explanation why this should be integrated and what have been changed
  • If there is new initialize properties they they should be documented to documentation
  • If this Pull Request generates new functionality which ain't having example that should be provided.

License

jScrollPane is dual-licensed under the GPL 2 license and the MIT license.

Comments
  • Broken after updating from 2.0.22 to 2.1.2: jScrollPane is not a function (npm, webpack)

    Broken after updating from 2.0.22 to 2.1.2: jScrollPane is not a function (npm, webpack)

    After updating looks like jScrollPane is not in bundle anymore

    t(...).jScrollPane is not a function

    Latest jQuery (3.3.1) Latest Webpack (3.11.0)

    Reverting to 2.0.22 fixes the problem. I tried multiple times.

    Bug fix Need testing 
    opened by hheexx 29
  • Auto Reinitialising - Using event based updates to remove polling overhead

    Auto Reinitialising - Using event based updates to remove polling overhead

    Currently autoreinitialise uses an interval (defaulting to every 500ms) to check to see the content has changed size and if so update the scrollbars. This is very inefficient, especially if we require the scrollbars to update quickly when size changes, and it is well documented that we should avoid where possible using low autoreinitialise delays.

    Instead, we can reinitialise once we detect the content changing size using events, instead of polling. So now, the component will sit idle until the browser fires an event, and only then will we reinitialise, making it much more efficient and will avoid running size checks that can cause reflow when they are not needed.

    Echament Need testing 
    opened by ashley-hunter 12
  • Small fix for reinitialisation in combination with strict horizontal scrolling of a growing pane

    Small fix for reinitialisation in combination with strict horizontal scrolling of a growing pane

    As commented in the code on https://github.com/vitch/jScrollPane/commit/1ec254c7ef0a9fb3db7fd46939bc398671c607da#commitcomment-959306

    There is a small issue with the testcase for contentWidth == previousContentWidth and the action to return and thus never update the contentWidth any more: as such all following calls to reinitialise will have the same effect (no scrollbars added because the contentWidth never gets updated)

    I think isolated the problem with the new test-case page, and like to believe I also have an elegant fix for it. I hope you can consider adding it into trunk.

    The fix just doesn't use contentWidth but a new probeWidth() function that actually checks down on the content-level if there is more (or less) required space.

    Kind regards,

    -marc=

    Bug fix Need testing 
    opened by marc-portier 10
  • jScrollPane reinitialization should adapt to changed container size

    jScrollPane reinitialization should adapt to changed container size

    I often want the height of my jScrollPane container to be able to change size, depending on the context of the surrounding page. However, once jScrollPane has been initialized, it is 'locked' to its initial size, and won't increase its size, even if more space is later available.

    I have changed the reinitialization flow to reexamine the available space, and resize if necessary. I've also included a little demo page illustrating the change.

    Cheers, Martin

    Echament Need testing 
    opened by ept 10
  • autoReinitialise & .jspDrag:hover issue

    autoReinitialise & .jspDrag:hover issue

    When having autoReinitialise set to true and specified drag:hover bg color drag div blinks every time autoReinitialise is called (every 500ms).

    I guess this can be solved by resizing jspDrag every 500ms instead of redrawing it.

    opened by jeeStyle 10
  • Register to globally available version of jQuery

    Register to globally available version of jQuery

    I am not entirely sure about the maintainers preferences here, but it seems importing the plugin in a ES6 environment has no effect.

    Issue:

    The plugin does not register on window.jquery OR to the locally available jQuery in the module.

    Expectation

    • The plugin should register itself to the global available jQuery or the local ES6 import

    Sample code

    Contents of main.js

    import jQuery from './jquery-shim';
    import 'jquery-ui-dist/jquery-ui';
    import 'jquery-mousewheel';
    import 'jscrollpane/script/jquery.jscrollpane';
    

    Contents of /jquery-shim.js

    import jQuery from 'jquery';
    // expose jQuery on window, so that non ES6 legacy plugins (incl. jquery-ui) may work
    window.jQuery = window.$ = jQuery;
    
    export default jQuery;
    

    The pull requests gives preference to the globally available jquery (if present) before using the private jquery dependency as a fallback

    Echament Need testing 
    opened by abhishekdev 9
  • Line with console.log

    Line with console.log

    Hello,

    In the line 165 of jquery.jscrollpane.js there is the next code: console.log('newPaneHeight = ' + newPaneHeight);

    The same happens in jquery.jscrollpane.min.js

    Besides, if you open the browser console, there is an infinite loop running console.log.

    Need testing 
    opened by memento86 9
  • main prop removed from package.json -> Build failed

    main prop removed from package.json -> Build failed

    Hi, suddenly our build in our CI server is broken. This happened after jscrollpane got updated to latest version (2.1.1). We just required the module with require('jscrollpane') and Webpack did the work to find it in node_modules. I noticed that the 'main' property was removed from package.json, that probably was what webpack used to guess what file to include.

    Is there a reason for this change?

    opened by JavRok 9
  • Infinite width grow when autoreinitialise option and padding set

    Infinite width grow when autoreinitialise option and padding set

    There is some strange bug occurs when autoreinitialise option is set to true and block has padding (but maybe table layout is the root of the problem). Each time plugin re initializes its width grows. The more padding block has the faster it grows...

    I have created simple example of such bug: http://jsfiddle.net/yz67W. Try to remove padding and bug will not occur.

    Bug fix Need testing 
    opened by PaulAnnekov 9
  • ie8 & ie7: Cannot scroll using mousewheel for jscrollpane v2.0.14  & mousewheel.js v3.1.3

    ie8 & ie7: Cannot scroll using mousewheel for jscrollpane v2.0.14 & mousewheel.js v3.1.3

    Cannot scroll with mousewheel for jscrollpane v2.0.14 & mousewheel.js v3.1.3 in ie8 & ie7.

    The positionDragY function is being called by the plugin, but the destY argument passed to it is NaN, when it should be an integer.

    opened by bencooling 9
  • jScrollPane and TinyMCE dont play nice

    jScrollPane and TinyMCE dont play nice

    ive tried including a tinyMCE editor inside a pane with jscrollpane

    either the editor doesnt load the second time... or jscroll doesnt work. im not 100% sure which 1 is causing the problems tho

    http://meetpad.org/demo_scroll_editor.html

    it works fine on page laod... but as soon as you click reload the vertical slider disapears.

    $("#t").tinymce();
    $("#wrapper > div").jScrollPane();
    
    opened by WilliamStam 9
  • Bump qs from 6.5.2 to 6.11.0

    Bump qs from 6.5.2 to 6.11.0

    Bumps qs from 6.5.2 to 6.11.0.

    Changelog

    Sourced from qs's changelog.

    6.11.0

    • [New] [Fix] stringify: revert 0e903c0; add commaRoundTrip option (#442)
    • [readme] fix version badge

    6.10.5

    • [Fix] stringify: with arrayFormat: comma, properly include an explicit [] on a single-item array (#434)

    6.10.4

    • [Fix] stringify: with arrayFormat: comma, include an explicit [] on a single-item array (#441)
    • [meta] use npmignore to autogenerate an npmignore file
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbol, object-inspect, tape

    6.10.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [actions] reuse common workflows
    • [Dev Deps] update eslint, @ljharb/eslint-config, object-inspect, tape

    6.10.2

    • [Fix] stringify: actually fix cyclic references (#426)
    • [Fix] stringify: avoid encoding arrayformat comma when encodeValuesOnly = true (#424)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] add note and links for coercing primitive values (#408)
    • [actions] update codecov uploader
    • [actions] update workflows
    • [Tests] clean up stringify tests slightly
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, object-inspect, safe-publish-latest, tape

    6.10.1

    • [Fix] stringify: avoid exception on repeated object values (#402)

    6.10.0

    • [New] stringify: throw on cycles, instead of an infinite loop (#395, #394, #393)
    • [New] parse: add allowSparse option for collapsing arrays with missing indices (#312)
    • [meta] fix README.md (#399)
    • [meta] only run npm run dist in publish, not install
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbols, tape
    • [Tests] fix tests on node v0.6
    • [Tests] use ljharb/actions/node/install instead of ljharb/actions/node/run
    • [Tests] Revert "[meta] ignore eclint transitive audit warning"

    6.9.7

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] stringify: avoid encoding arrayformat comma when encodeValuesOnly = true (#424)
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] add note and links for coercing primitive values (#408)
    • [Tests] clean up stringify tests slightly
    • [meta] fix README.md (#399)
    • Revert "[meta] ignore eclint transitive audit warning"

    ... (truncated)

    Commits
    • 56763c1 v6.11.0
    • ddd3e29 [readme] fix version badge
    • c313472 [New] [Fix] stringify: revert 0e903c0; add commaRoundTrip option
    • 95bc018 v6.10.5
    • 0e903c0 [Fix] stringify: with arrayFormat: comma, properly include an explicit `[...
    • ba9703c v6.10.4
    • 4e44019 [Fix] stringify: with arrayFormat: comma, include an explicit [] on a s...
    • 113b990 [Dev Deps] update object-inspect
    • c77f38f [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbol, tape
    • 2cf45b2 [meta] use npmignore to autogenerate an npmignore file
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump decode-uri-component from 0.2.0 to 0.2.2

    Bump decode-uri-component from 0.2.0 to 0.2.2

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump async from 2.6.0 to 2.6.4

    Bump async from 2.6.0 to 2.6.4

    Bumps async from 2.6.0 to 2.6.4.

    Changelog

    Sourced from async's changelog.

    v2.6.4

    • Fix potential prototype pollution exploit (#1828)

    v2.6.3

    • Updated lodash to squelch a security warning (#1675)

    v2.6.2

    • Updated lodash to squelch a security warning (#1620)

    v2.6.1

    • Updated lodash to prevent npm audit warnings. (#1532, #1533)
    • Made async-es more optimized for webpack users (#1517)
    • Fixed a stack overflow with large collections and a synchronous iterator (#1514)
    • Various small fixes/chores (#1505, #1511, #1527, #1530)
    Commits
    Maintainer changes

    This version was pushed to npm by hargasinski, a new releaser for async since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • jScrollPane loads its own jQuery when used in webpack

    jScrollPane loads its own jQuery when used in webpack

    Recently, I was moving some code from a legacy static files to webpack, and I noticed something curious:

    When using webpack to import jScrollPane, I wasn't seeing it in $.fn as an instance function. After some digging, I saw that the jquery version that it was being attached to was 3.6.0, when the version in the project was different. Of the three jquery plugins we had, 2 were working, this one was not. The difference was intriguing. Below is my findings and some additional details on potential fixes.


    In jquery-match-height, it was working as expected. The only difference that I can tell is that there is no dependency on jQuery in package.json. My guess is that plugin had the same problem, and just solved it by removing the dependency.

    In jquery-mousewheel, it is doing something different. If you see in jquery.mousewheel.js, for CommonJS modules, it is not calling the factory, it is just exposing it in the exports, which means you call the factory in your code, like below (which works perfectly):

    import $ from  'jquery';
    import jqueryMousewheel from 'jquery-mousewheel';
    
    jqueryMousewheel($);
    

    To do it canonically (at least NPM canonical), it might be better to make jquery a peerDependency. This would have the benefit that your existing users don't have to change anything other than ensure that they have jquery added as a dependency in their projects (which they almost certainly do already).

    To take it to the next level, you could do the same for your other dependency, jquery-mousewheel (funny, since I mentioned it above).

    Either way you decide to fix it (peer dependency or do it like jquery-mousewheel) would make it a whole lot easier to use in webpack for migrating projects.

    opened by paul-bjorkstrand 1
  • click don't work after JScrollPane and Ajax

    click don't work after JScrollPane and Ajax

    Good morning all, I don't know if it's me but I noticed some pretty weird behavior, when I fetch the data via ajax and I made a plugin call: $ ('. Scroll-user-table'). JScrollPane ( { showArrows: true, hijackInternalLinks: true, autoReset: true, horizontalArrowPositions: 'after', }); After there is a jump when I try to click on an element of the content taken via ajax It works when I click for the second time

    script:

     function siteScrollPage() {
        $('.scroll-user-table').jScrollPane({
           showArrows: true,
          hijackInternalLinks: true,
          autoReinitialise: true,
          horizontalArrowPositions: 'after',
        });
    };
    
     loader.removeClass('hidden');
    
      $.ajax({
        url: '',
        type: 'GET',
        data: {loaded: 'loaded'},
      })
      .done(function(response) {
        firstLoaded = false;
        $('#add-loaded-invoice').html(response);
      })
      .fail(function(response) {
      })
      .always(function(response) {
        siteScrollPage();
        siteUserPaginate();
        siteFirstTimeLoadedInvoiceLivraison();
        loader.addClass('hidden');
      });
    
    opened by joelmatisa 10
Releases(v2.2.3-rc.2)
  • v2.2.3-rc.2(Jun 26, 2020)

    There is fix for two jQuery security Issues:

    • Jquery 3.5.0: Security Fix Closing HTML Tags #376
    • Jquery 4.0: Use of number-typed values is deprecated #377

    All the scripts that are not part of jquery.jscrollpane.js like jquery.mousewheel.js and mwheelIntent.js are updated to follow jQuery 3.x binding system. There is also work on stickToBottom and stickToRight settings. They work little bit differently if you turn of maintainPosition setting to false. After that they get you to bottom or right everytime reinitialize()-function is run. If you have maintainPosition set to true (which is default) then user have to go bottom and after that it stays at bottom. Script is also run through Prettier beautifier which also made run everytime Grunt is excecuted and code which doesn't go through prettier is not pretty enough.

    Be sure to test before taking this to production

    Source code(tar.gz)
    Source code(zip)
  • 2.2.2(May 6, 2020)

  • v2.2.1(Sep 27, 2018)

    Changes are the same as Relase Candidate 2.

    Please check CSS changes before taking this in production! Again CSS has changed please check that it doesn't break you or your system.

    • Changes

      • CSS files in project haven't changed for a while and they are base CSS for many projects.
    • Merged

      • vitch/jScrollPane#360 Register to globally available version of jQuery

    Besides these don't worry be happy!

    Source code(tar.gz)
    Source code(zip)
  • v2.2.1-rc.2(Jun 14, 2018)

    As sucked again in NPM skipped Release Candidate 1! This is just same but as NPM I have to rise number

    • Changes

      • CSS files in project haven't changed for a while and they are base CSS for many projects. Fixing something can lead mass destruction of web projects. Please these changes before taking this in production.
    • Merged

      • vitch/jScrollPane#360 Register to globally available version of jQuery

    Besides that happy summer holidays in Norther hemisphere..

    Source code(tar.gz)
    Source code(zip)
  • v2.2.0(May 16, 2018)

    jScrollPane have had until now resize system which just polls changes in page and that was little bit resource hog event with newest machines. Version 2.2.0 introduces new Resize Sensor (which have one have to enable with new parameter). Please see new example HTML file how to use it and does it fit to your system.

    • Other changes are

      • README.md had small face lift with CND and NPM info.
    • Merged

      • vitch/jScrollPane#361
      • vitch/jScrollPane#359
    Source code(tar.gz)
    Source code(zip)
  • v2.2.0-rc.1(Apr 28, 2018)

    It's spring in my hemisphere and Mayday is coming. For this release I recommend heavy testing! There is new way to watch changes of the screen size or size changes of component size. Another change is minimal NPM build adoption. So make sure you check them out!

    For background music I can recommend (As I don't know any good wines) Members of Mayday: Mayday Anthem from marvelous year 1992.

    In NPM database this one is now tagged as 'next' as bug #358 pointed out

    • Merged
      • vitch/jScrollPane#361
      • vitch/jScrollPane#359
    Source code(tar.gz)
    Source code(zip)
  • v2.1.3(Apr 4, 2018)

    If you are using Webpack you should really update to this release as this one really works with it!

    • There is no changes in code only package.json changes so if it's working for you it's not borked by me or anyone!
    • Fix issue #356 and people who use Webpack should be happy now!
    • Move examples to own directory from polluting root

    If this release makes your code dance Salsa20 then please submit new Issue

    Source code(tar.gz)
    Source code(zip)
  • v2.1.3-rc.2(Mar 13, 2018)

    As Node is fairly new system and Webpack is even newer system. There is much documentation but there ain't much how to solve problems. Long story short (Long story see Issue #356): good news is that Webpack is working now and bad news is that there is change in package.json which can break your build.

    If you use Webpack or rely on NPM-package manager you should really test this before this is released because this is how we roll ever after from this

    Source code(tar.gz)
    Source code(zip)
  • v2.1.3-rc.1(Mar 5, 2018)

    My knowledge how people like to use jScrollPane is getting wider and wider. As breaking some people build systems I update this again in trying to get it working for all.

    • Also *.html files are moved to examples
    • build/GruntFile.js is now /GruntFile.js

    Again if this break for you. Please open Issue so it would be ironed out before 2.1.3

    Source code(tar.gz)
    Source code(zip)
  • v2.1.2(Feb 16, 2018)

    This small minor release is all about getting NPM package manager back in business. It doesn't fix anything nor it doesn't bring any new functionality.

    Source code(tar.gz)
    Source code(zip)
  • v2.1.2-rc.2(Feb 3, 2018)

    Release candidate 2 is same code as can be found from NPM-database. As last candidate has incorrect main-tag so only change is correcting that problem and upload new version to NPM-database.

    Source code(tar.gz)
    Source code(zip)
  • v2.1.2-rc.1(Jan 18, 2018)

    As published 2.1.1 on NPM it break down some build. This release tries to get NPM users happy. Smile! Be happy.

    There is no other changes than package.json ones. So if everything is working then you are not in hurry to update

    Source code(tar.gz)
    Source code(zip)
  • v2.1.1(Jan 12, 2018)

    New release 2.1.1 which brings new features:

    • There is now options 'alwaysShowVScroll' and 'alwaysShowHScroll' to show horizontal and vertical scroll bars
    • Drag bar height and width is set by CSS which should take care size properly
    • If container size changes re-initialization should now work
    • PR Merged

      • vitch/jScrollPane#349 ScrollPane reinitialization should adapt to changed container size
      • vitch/jScrollPane#335 Set drag bar width/height with .css instead of .width/.height
      • vitch/jScrollPane#297 added two settings: always show HScroll and VScroll
    • Bugs

      • #8 Make it possible to tell a scrollbar to be "always on"
    Source code(tar.gz)
    Source code(zip)
  • v2.1.1-rc.1(Dec 23, 2017)

    As starting to merging this to old working script like jScrollPane there is huge change that something gets broken. So this is only Release candidate for people who don't use Git master for testing. This is not for production!

    • PR Merged

      • vitch/jScrollPane#349 ScrollPane reinitialization should adapt to changed container size
      • vitch/jScrollPane#335 Set drag bar width/height with .css instead of .width/.height
      • vitch/jScrollPane#297 added two settings: always show HScroll and VScroll
    • Bugs

      • #8 Make it possible to tell a scrollbar to be "always on"
    Source code(tar.gz)
    Source code(zip)
  • v2.1.0(Dec 16, 2017)

    As jQuery version 1.x and 2.x are deprecated this release updates jScollPane to jQuery version 3.x.

    This release deprecates usage with jQuery 1.0.6 and lower in other words there won't be any releases that supports jQuery lower than jQuery 1.0.7 after this.

    If you didn't read anything else please read this: users that have been using jQuery 1.0.7 or above should not notice any changed functionality. Otherwise there is breaking changes and users depending lower version should be using jScrollPane version v2.0.23 or lower.

    Source code(tar.gz)
    Source code(zip)
A jQuery plugin that offers a simplistic way of implementing Lion OS scrollbars.

This project is not maintained This project is not currently actively maintained. If you need an up-to-date scrollbar plugin, try OverlayScrollbars in

James F 2.7k Nov 24, 2022
A javascript framework for developing pretty browser dialogs and notifications.

AlertifyJS AlertifyJS is a javascript framework for developing pretty browser dialogs and notifications. AlertifyJS is an extreme makeover of alertify

Mohammad Younes 2k Jan 2, 2023
🛠 Highly customisable, minimalistic input x select field for React.

Insect ?? Highly customisable, minimalistic input x select field for React. ⚡️ Features Tiny size (~4kb Gzip) 100% responsive. Highly customisable. Su

Kadet 32 Oct 29, 2022
A fast, vanilla JS customisable select box/text input plugin for modern browsers ⚡

choices A fast, vanilla, lightweight (~16kb gzipped ?? ), configurable select plugin for modern browsers. Similar to Select2 and Selectize but without

null 9 Aug 9, 2022
Customisable javascript skeleton loader.

JS Skeleton loader Simple but very powerful loader package built with full javascript. Installation To install this package, include index.js file int

A. M. Sadman Rafid 4 Dec 1, 2022
Horizontal Timeline 2.0, a fully customisable jQuery plugin to create a dynamic timeline on the horizontal axis.

Horizontal Timeline 2.0 by yCodeTech Twitter @yCodeTech Current Version: 2.0.5.3 Quick Links: Setup | Options | Autoplay | Known Issues | Known Issues

Stu 18 May 29, 2022
Beautiful UI-Range input component, highly customisable, based on CSS variables.

Beautiful UI-Range input component, highly customisable, based on CSS variables. including a floating output value, min & max values on the sides & ticks according to the steps

Yair Even Or 73 Dec 27, 2022
Purple hats Desktop is a customisable, automated web accessibility testing tool that allows software development teams to find and fix accessibility problems to improve persons with disabilities (PWDs) access to digital services.

Purple HATS Desktop Purple hats Desktop is a desktop frontend for Purple HATS accessibility site scanner - a customisable, automated web accessibility

Government Digital Services, Singapore 6 May 11, 2023
A pretty cool org-mode -> interactive blog post tool

Radish A kinda-cool org-mode -> interactive blog post tool written with and for Clojure(script). Here are two example posts created with this tool: Ra

adam-james 46 Dec 28, 2021
Pretty Cool Elements

Pretty Cool Elements Social Media Photo by Jamison McAndie on Unsplash This module is a follow up of this Medium post, and it provides element mixins/

Andrea Giammarchi 36 Dec 23, 2022
This is a (pretty broken, but mostly functional) organic-shaped jigsaw generator with custom border support

OrganicPuzzleJs This is a (pretty broken, but mostly functional) organic-shaped jigsaw generator with custom border support. It relies on two linbrari

null 6 Dec 10, 2022
A lightweight JavaScript library for creating interactive maps and pretty data visualization.

Jsvectormap A lightweight Javascript library for creating interactive maps and pretty data visualization. Explore docs . Report bug · View demo · Down

Mustafa Omar 204 Dec 24, 2022
✨ Properly credit deps and assets in your projects in a pretty way.

Acknowledgements ✨ Properly credit deps and assets in your projects in a pretty way. About Acknowledgments is a CLI tool that generates a JSON file wi

Clembs 5 Sep 1, 2022
An open-source, pretty, simple and fast meilisearch UI for managing your meilisearch instances

Meilisearch-UI An open-source, pretty, simple and fast meilisearch UI for managing your meilisearch instances [IMPORTANT] The main branch may be unsta

Kyrie Lrvinye 29 Dec 29, 2022
Automatic arxiv->ar5iv link replacement in Chrome.

Automatic arxiv->ar5iv link replacement in Chrome. This chrome extension will automatically replace arxiv.org/pdf/* links with ar5iv links for more we

yobi byte 44 Oct 29, 2022
Replacement for comma.ai backend and useradmin dashboard

Replacement for comma.ai backend and useradmin dashboard. Bundled with a modified version of comma's cabana to allow viewing & analyzing drives.

null 15 Jan 1, 2023
A Hackable Markdown Note Application for Programmers. Version control, AI completion, mind map, documents encryption, code snippet running, integrated terminal, chart embedding, HTML applets, plug-in, and macro replacement.

Yank Note A hackable markdown note application for programmers Download | Try it Online >>> Not ecommended English | 中文说明 [toc]{level: [2]} Highlights

洋子 4.3k Dec 31, 2022
A drop in replacement for Hacker News with support for dark mode and more.

Worker News A drop in replacement for Hacker News with support for dark mode, quotes in comments, user identicons and submission favicons. What's cool

Worker Tools 18 Dec 31, 2022
A Drop-in Jalali Replacement for filament DateTimePicker

Filament Jalali Date Time Picker Field This package is a Drop-in replacement for DatePicker and DateTimePicker field type you just need to replace tho

AriaieBOY 8 Dec 3, 2022