overscroll
Version:
32 lines (27 loc) • 913 B
JavaScript
export var getOffset = function getOffset(_ref) {
var win = _ref.win,
body = _ref.body,
html = _ref.html;
return function (node) {
var box = node.getBoundingClientRect();
// < ie8 不支持 win.pageXOffset, 则使用 html.scrollLeft
return {
left: box.left + (win.pageXOffset || html.scrollLeft) - (html.clientLeft || body.clientLeft || 0),
top: box.top + (win.pageYOffset || html.scrollTop) - (html.clientTop || body.clientTop || 0)
};
};
};
export var getPosition = function getPosition(scope) {
return function (node) {
// if ( node.parentNode === scope.body ) {
// return getOffset( scope )( node );
// }
var parent = node.parentNode;
var parentOffset = getOffset(scope)(parent);
var offset = getOffset(scope)(node);
return {
left: offset.left - parentOffset.left,
top: offset.top - parentOffset.top
};
};
};