You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.3 KiB

10 months ago
export default function useScrollHeight() {
const getScrollTop = () => {
let scrollTop:number = 0,
bodyScrollTop:number = 0,
documentScrollTop:number = 0
if (document.body) {
bodyScrollTop = document.body.scrollTop
}
if (document.documentElement) {
documentScrollTop = document.documentElement.scrollTop
}
scrollTop = bodyScrollTop - documentScrollTop > 0 ? bodyScrollTop : documentScrollTop
return scrollTop
}
//浏览器视口滚动的高度
const getScrollHeight = () => {
let scrollHeight:number = 0,
bodyScrollHeight:number = 0,
documentScrollHeight:number = 0
if (document.body) {
bodyScrollHeight = document.body.scrollHeight
}
if (document.documentElement) {
documentScrollHeight = document.documentElement.scrollHeight
}
scrollHeight = bodyScrollHeight - documentScrollHeight > 0 ? bodyScrollHeight : documentScrollHeight
return scrollHeight
}
//浏览器视口的高度
const getWindowHeight = () => {
let windowHeight:number = 0
if (document.compatMode == 'CSS1Compat') {
windowHeight = document.documentElement.clientHeight
} else {
windowHeight = document.body.clientHeight
}
return windowHeight
}
return {
getScrollTop,
getScrollHeight,
getWindowHeight,
}
}