查看滚动条距离
常规
- window.pageXOffset/pageYOffset IE9及以下不支持
- 支持 document.body.scrollLeft/scrollTop,document.documentElement.scrollLeft/scrollTop
不常见
- window.scrollX/scrollY
封装
function getScrollOffset(){//如果存在if(window.pageXOffset){return {left:window.pageXOffset,top:window.pageYOffset}}else{return {left:document.body.scrollLeft+document.documentElement.scrollLeft,top:document.body.scrollTop+document.documentElement.scrollTop}}}
浏览器的怪异模式和标准模式
- 默认向后兼容
兼容w3c规范的是标准模式。否则就是怪异模式
<!DOCTYPE html><script>document.compatMode标准模式:CSS1Compat怪异模式:BackCompat</script>
浏览器的可视区域尺寸(窗口的宽高)
常规
- window.innerWidth/innerHeight
IE9及以下
- 标准模式 document,documentElement.clientWidth/clientHeight
- 怪异模式 document.body.clientWidth/clientHeight
封装
function getViewportSize(){if(window.innerWidth){return {width:window.innerWidth,height:window.innerHeight}}else{if(document.compatMode==='BackCompat'){return{width:document.body.clientWidth,height:document.body.clientHeight}}else{return {width:document.documentElement.clientWidth,height:document.documentElement.clientHeight}}}}
scrollHeight,scrollWidth
- document.body/document.documentElement
- window.innerWidth+window.pageXOffset
封装
function getScrollSzie(){if(document.body.scrollWidth){return {width:document.body.scrollWidth,height:document.body.scrollHeight}}else{return {width:document.documentElement.scrollWidth,height:document.documentElement.scrollHeight}}}
getBoundingClientReact()
window.scroll(x,y)/window.scrollTo(x,y)
不怎么用
