Socket
Socket
Sign inDemoInstall

scroll-into-view

Package Overview
Dependencies
Maintainers
1
Versions
50
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

scroll-into-view - npm Package Compare versions

Comparing version 1.1.1 to 1.2.0

2

package.json
{
"name": "scroll-into-view",
"version": "1.1.1",
"version": "1.2.0",
"description": "",

@@ -5,0 +5,0 @@ "main": "scrollIntoView.js",

@@ -15,2 +15,20 @@ # scroll-into-view

scrollIntoView(someElement);
scrollIntoView(someElement);
You can pass settings to control the time, easing, and whether or not a parent is a valid element to scroll:
scrollIntoView(someElement, {
time: 500, // half a second
ease: function(value){
return Math.pow(value,2) - value); // Do something weird.
},
validTarget: function(target, parentsScrolled){
return parentsScrolled < 2 && !target.matches('.dontScroll');
}
});
You can pass a callback that will be called when all scrolling has been completed or canceled.
scrollIntoView(someElement [, settings], function(){
// Scrolling done.
})

@@ -133,4 +133,6 @@ function setElementScroll(element, x, y){

while(parent && parent.tagName !== 'BODY'){
while(parent){
if(
settings.validTarget ? settings.validTarget(parent, parents) : true &&
parent === window ||
(

@@ -147,6 +149,11 @@ parent.scrollHeight !== parent.clientHeight ||

parent = parent.parentElement;
if(!parent){
return;
}
if(parent.tagName === 'BODY'){
parent = window;
}
}
parents++;
transitionScrollTo(target, window, settings, done);
};

@@ -134,2 +134,34 @@ var test = require('tape'),

});
});
test('invalid target', function(t) {
var target;
t.plan(1);
queue(function(next){
crel(document.body,
crel('div', {'style':'position:relative; height:5000px; overflow: scroll;'},
crel('div', {'style':'position:relative; font-size:20em; overflow: scroll;display:inline-block'},
target = crel('span', {'style':'position:absolute; top:75%; left: 75%; box-shadow: 0 0 10px 10px red;'}),
crel('div', {style: 'white-space:nowrap;'}, 'TEXT-AND-THAT-TO-MAKE-STUFF-HELA-WIDE'),
crel('div', {style: 'white-space:nowrap;'}, 'TEXT-AND-THAT-TO-MAKE-STUFF-HELA-WIDE'),
crel('div', {style: 'white-space:nowrap;'}, 'TEXT-AND-THAT-TO-MAKE-STUFF-HELA-WIDE')
)
)
);
scrollIntoView(
target,
{
validTarget: function(target){
return target !== window;
}
},
function(){
t.pass();
}
);
});
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc