Last active
December 27, 2020 20:47
-
-
Save Korveld/a2c9429233b4b2c7fedc9a1a82f3ada7 to your computer and use it in GitHub Desktop.
Horizontal scrolling via drag and mousewheel with custom scrollbar
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* | |
| Plugins | |
| Perfect Scrollbar: https://github.com/mdbootstrap/perfect-scrollbar | |
| jQuery Mouse Wheel: https://github.com/jquery/jquery-mousewheel | |
| */ | |
| var drag = $('.js-drag') | |
| var ps = new PerfectScrollbar('.js-drag'); | |
| drag.mousewheel(function(event, delta) { | |
| this.scrollLeft -= (delta * 50); | |
| this.scrollRight -= (delta * 50); | |
| event.preventDefault(); | |
| }); | |
| var slider = document.querySelector('.drag'); | |
| var isDown = false; | |
| var startX; | |
| var scrollLeft; | |
| slider.addEventListener('mousedown', (e) => { | |
| isDown = true; | |
| startX = e.pageX - slider.offsetLeft; | |
| scrollLeft = slider.scrollLeft; | |
| }); | |
| slider.addEventListener('mouseleave', () => { | |
| isDown = false; | |
| }); | |
| slider.addEventListener('mouseup', () => { | |
| isDown = false; | |
| }); | |
| slider.addEventListener('mousemove', (e) => { | |
| if(!isDown) return; | |
| e.preventDefault(); | |
| var x = e.pageX - slider.offsetLeft; | |
| var walk = (x - startX) * 3; //scroll-fast | |
| slider.scrollLeft = scrollLeft - walk; | |
| }); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment