What
Scrolls an element into view
Also scrolls any scroll-parents so that the element is in view.
Donating
If you want to show your support financially, I'm on Patreon
Example
Example
How
require it
var scrollIntoView = require('scroll-into-view');
use it
scrollIntoView(someElement);
You can pass settings to control the time, easing, and whether or not a parent is a valid element to scroll, and alignment:
All options are optional.
scrollIntoView(someElement, {
time: 500,
ease: function(value){
return Math.pow(value,2) - value;
},
validTarget: function(target, parentsScrolled){
return parentsScrolled < 2 && target !== window && !target.matches('.dontScroll');
},
align:{
top: 0 to 1, default 0.5 (center)
left: 0 to 1, default 0.5 (center)
topOffset: pixels to offset top alignment
leftOffset: pixels to offset left alignment
},
isScrollable: function(target, defaultIsScrollable){
return defaultIsScrollable(target) || ~target.className.indexOf('scrollable');
},
isWindow: function(target){
return target.self === target;
},
cancellable: true,
maxSynchronousAlignments: 3
});
You can pass a callback that will be called when all scrolling has been completed or canceled.
scrollIntoView(someElement [, settings], function(type){
});
Size
Small. ~3.03 KB for the standalone.
Testing
Testing scrolling is really hard without stuff like webdriver, but what's there works ok for the moment.
The tests will attempt to launch google-chrome. If you don't have chrome, lol just kidding you do.
npm run test
Standalone
If you want to use this module without browserify, you can use scrollIntoView.min.js
<script src="scrollIntoView.min.js"></script>
<script>
window.scrollIntoView(someElement);
</script>
Contributors
This project exists thanks to all the people who contribute.
Backers
Thank you to all our backers! 🙏 [Become a backer]
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]