vui-design
Version:
A high quality UI Toolkit based on Vue.js
24 lines (19 loc) • 715 B
JavaScript
import is from "./is";
/**
* 获取容器水平方向或垂直方向的滚动距离
* @param {Window|HTMLElement} scrollContainer 滚动容器
* @param {Boolean} vertical 是否获取垂直方向的滚动距离,默认为 true
*/
export default function getScroll(scrollContainer, vertical = true) {
if (typeof window === "undefined") {
return 0;
}
const isWindow = scrollContainer === window;
const key = vertical ? "pageYOffset" : "pageXOffset";
const property = vertical ? "scrollTop" : "scrollLeft";
let value = isWindow ? scrollContainer[key] : scrollContainer[property];
if (isWindow && !is.number(value)) {
value = window.document.documentElement[property];
}
return value;
};