页面滚动时的位置:为了兼容浏览器,封装自己的scrollTop和scrollLeft(内含“怪异模式”)
来源:互联网 发布:linux基本命令的使用 编辑:程序博客网 时间:2024/09/21 09:21
三种兼容表现形式:
document.body.scrollTop//360 谷歌等标准模式
document.documentElement.scrollTop//火狐,IE浏览器 及怪异模式window.pageYOffset//最新的浏览器都支持 ie9+
未封装的写法:
window.onscroll=function(){ var scrollTop=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;//兼容写法 console.log(scrollTop); }
封装后的写法:
// varjson = {left: 10, right: 10} 变异 //json.left json.top // 封装自己的scrollTop和scrollLeft function scroll() { if(window.pageXOffset != null){ return{ left:window.pageXOffset, //IE不支持 top:window.pageYOffset } }else if(document.compatMode == "CSS1Compat"){ // 如果是怪异模式 // 怪异模式就是没有声明文档类型DTD,即没有<!DOCTYPE html>这句 // document.compatMode == "BackCompat"//如果不是怪异模式;如果没有声明DTD return{// 声明了DTD的document.documentElement 都支持, left:document.documentElement.scrollLeft;//标准模式 top:document.documentElement.scrollTop } } return{//没有声明DTD 怪异模式的写法: left:document.body.scrollLeft, top:document.body.scrollTop } } window.onscroll=function(){ console.log(scroll().top); console.log(scroll().left) }
html:
body {
height: 3000px;
width: 2000px;
}
0 0
- 页面滚动时的位置:为了兼容浏览器,封装自己的scrollTop和scrollLeft(内含“怪异模式”)
- 封装自己的scrollTop和scrollLeft
- scrollTop scrollLeft的封装
- scrollTop:页面垂直滚动的距离 浏览器兼容代码
- 各浏览器对于获取文档水平及垂直方向滚动条位置(scrollLeft、scrollTop)时的参考元素存在差异
- 兼容各浏览器的clientWidth,clientHeight,scrollWidth,scrollHeight,scrollLeft,scrollTop
- 文档滚动对 scrollTop scrollLeft的兼容性封装
- scrollTop和scrollLeft的用法
- scrollLeft,scrollTop,滚动代码的总结
- scrollLeft,scrollTop,滚动代码的总结
- scrollLeft,scrollTop,滚动代码的总结
- scrollLeft,scrollTop,滚动代码的总结
- scrollLeft,scrollTop,滚动代码的总结
- scrollLeft,scrollTop,滚动代码的总结
- 浏览器关于scrollTop scrollLeft的兼容性
- 浏览器关于scrollTop scrollLeft的兼容性
- js-scrollTop和scrollLeft封装
- 浏览器的怪异模式和标准模式
- 看完这篇文章,你会对H5页面有一个全面的认识
- Android Studio调试技巧
- 通过系统时间判断 上下午
- sdut oj 3665 Feed the monkey(dp)
- 连续数字
- 页面滚动时的位置:为了兼容浏览器,封装自己的scrollTop和scrollLeft(内含“怪异模式”)
- altium designer PCB 屏蔽DRC报错
- Xtreme 10.0 - Painter's Dilemma
- 442. Find All Duplicates in an Array
- 一个命令行接口的实现
- App后台开发运维和架构实践学习总结(2)——RESTful API设计技巧
- 简单易懂 MVP 模式
- netstat
- sql select语句中 having和where的区别用法及group by 的几种用法