查看滚动条的距离
方法 | 版本 |
---|---|
window.pageXOffset / pageYOffset | IE9/IE8及以下不支持(常规) |
document.body.scrollLeft/scrollTop | IE9/IE8及以下(部分支持,具体看模式) |
document.documentElement.scrollLeft/scrollTop | IE9/IE8及以下(部分支持,具体看模式) |
window.scrollX / scrollY | 不常见 |
- 滚动条距离:也看页面真实移动了多少,不要看物理距离
兼容模式
浏览器的怪异模式和标准模式
- 意味着需要按照W3C规范
CSS1Compat
- W3C的兼容模式:标准模式
<!DOCTYPE html>
- 若删除
<!DOCTYPE html>
则为BackCompat
- 怪异模式
浏览器的可视区域
方法 | 模式 |
---|---|
window.innerWidth / innerHeight | IE9/IE8及以下不支持(常规)【包括滚动条】 |
document.documentElement.clientWidth / clientHeight | IE9/IE8及以下 - 标准 【不包括滚动条】 |
document.body.clientWidth / clientHeight | IE9/IE8及以下 - 怪异 【包括滚动条】 |
outerWidth / outerHeight
(包含了滚动条、侧边栏、控制台等)
文档尺寸
scrollWidth = window.innerWidth + window.pageXOffset
是真正html文档的宽高
方法 | 模式 |
---|---|
document.documentElement.scrollWidth /scrollHeight | IE9/IE8及以下 - 标准 【不包括滚动条】 |
document.body.scrollWidth / scrollHeight | IE9/IE8及以下 - 怪异 【包括滚动条】 |
div.getBoundingClientRect()
- 在IE中不返回宽高,可以用
bottom-top
计算 - 不实时计算
offsetLeft
- 只认父级的定位元素,没有则向上找到可视区域的边框
- margin塌陷
- 解决1,父元素加上边距
- 解决2,BFC 但是offsetLeft仍然是100
offsetParent
- 找有定位的父级
- 没有则找到body
封装方法
- 小盒子(左上角)距离文档左上角的坐标
document.body.offsetLeft
0
操作滚动条
- 要滚动到
window.scroll(x,y)
/window.scrollTo(x,y)
- 每一次滚动多少
window.scrollBy(x,y)
应用:计时器+每次滚动(自动滚动)