53 lines
1.7 KiB
TypeScript
53 lines
1.7 KiB
TypeScript
|
export default function useScrollHeight(){
|
||
|
const getScrollTop = () => {
|
||
|
if(process.client){
|
||
|
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 = () => {
|
||
|
if(process.client){
|
||
|
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 = () => {
|
||
|
if(process.client){
|
||
|
let windowHeight: number = 0
|
||
|
if (document.compatMode == 'CSS1Compat') {
|
||
|
windowHeight = document.documentElement.clientHeight
|
||
|
} else {
|
||
|
windowHeight = document.body.clientHeight
|
||
|
}
|
||
|
return windowHeight
|
||
|
}
|
||
|
|
||
|
}
|
||
|
return {
|
||
|
getScrollTop,
|
||
|
getScrollHeight,
|
||
|
getWindowHeight,
|
||
|
}
|
||
|
}
|