查看滚动条距离
常规
- 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)