js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍


Posted in Javascript onMay 16, 2012
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>js位子表示</title> 
<script type="text/javascript"> 
function testClick(oDiv){ 
var oDivId=document.getElementById(oDiv); 
alert("offsetHeight:"+oDivId.offsetHeight+"\n offsetWidth:"+oDivId.offsetWidth+"\n offsetLeft:"+oDivId.offsetLeft+"\n offsetRight:"+oDivId.offsetLeft+"\n offsetTop:"+oDivId.offsetTop 
+"\n offsetParent:"+oDivId.offsetParent +"\n scrollHeight:"+oDivId.scrollHeight+"\n scrollWidth:"+oDivId.scrollWidth+"\n scrollTop:"+oDivId.scrollTop+"\n scrollLeft:"+oDivId.scrollLeft+"\n " ); 
} 
</script> 
</head> 
<body style="margin:0; padding:0;"> 
<div style="width:300px; height:300px; padding:2px; margin:3px;"> 
<div id="t1" style="margin:1px; padding:4px ; border:3px solid #eeeeee; width:100px; height:200px; overflow:scroll; cursor:pointer;" onclick="testClick('t1')" > 
一般的通过mousedown、mousemove、mouseup等打造的拖动,仅仅在普通的键盘+鼠标的电脑设备上可以工作。而到了ios设备上(iphone itouch ipad),则不能工作了。最近因为做个东西,需要支持ios设备,所以只好看了下webkit浏览器的触摸事件。 
其实也很简单,对应mousedown、mousemove、mouseup的触摸事件分别是touchstart、touchmove、touchend。为了写个demo,花了不少的时间,所以为了节省时间,我文章里就不多说了,仅贴一下相关代码。 
</div> 
</div> 
</body> 
</html>

ie(ie9,chrome,ff基本一致)中:
offsetHeight(返回元素的高度和宽度,以像素为单位,包含内边距):
200+4+4+3+3=214(自身200的高度+上下各为4的内边距+上下的各为3的border,注意不包括外边距)
offsetWidth(返回元素的高度和宽度,以像素为单位,包含内边距):、
100+3+3+4+4=114 同上
offsetLeft(返回当前元素的左边界到它的包含元素的左边界的偏移量,以像素为单位):
2+3+1=6(ie6下为3)(父级div的内左边距2+父级div外左边距+3+子div左外边距+1,注意这里子div内边距是不会影响到offsetLeft)
没有offsetRight的概念。
offsetTop(返回当前元素的上边界到它的包含元素的上边界的偏移量,以像素为单位。)
2+3+1=6(ie6下为2)道理和offsetLeft一样
scrollHeight(返回元素的完整的高度和宽度,以像素为单位。当一个元素拥有滚动条时(比如由于 CSS 的 overflow:scroll 属性,如果为hidden,得到的只是能显示文字所能看到的高度)
474(div的实际的高度,由里面的文字来决定,overflow:scroll )
如果overflow:hidden,就只有390,其它的被隐藏了
如果去调overflow,就是390,为什么 overflow:scroll 却等于474呢?因为还包含了滚动条的高度
scrollWidth:(和scrollheight道理一样)
overflow:hidden值为108(子div实际的宽度)
overflow:scroll 值为90(这里为什么会这样?难道不包括滚动条的宽度?)
去掉overflow,值为108
scrolltop(返回已经滚动到元素的左边界或上边界的像素数。只有在元素有滚动条的时候,例如,元素的 CSS overflow 属性设置为 auto 的时候,这些像素才有用。这些属性也只在文档的 <body> 或 <html> 标记上定义(这和浏览器有关),并且一起来制定滚动文档的位置。注意,这些属性并不会指定一个 <iframe> 标记的滚动量)
如果不拖动滚动条,默认的值为0;
scrollLeft同上
Javascript 相关文章推荐
js判断浏览器的比较全的代码
Feb 13 Javascript
用js实现随机返回数组的一个元素
Aug 13 Javascript
Jquery写一个鼠标拖动效果实现原理与代码
Dec 24 Javascript
jquery 关于event.target使用的几点说明介绍
Apr 26 Javascript
JS实现网页标题栏显示当前时间和日期的完整代码
Nov 02 Javascript
深入理解React中es6创建组件this的方法
Aug 29 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
Oct 14 Javascript
微信小程序 WebSocket详解及应用
Jan 21 Javascript
js实现功能比较全面的全选和多选
Mar 02 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
Mar 09 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
Apr 25 Javascript
Webpack path与publicPath的区别详解
May 03 Javascript
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
May 14 #Javascript
JQuery 返回布尔值Is()条件判断方法代码
May 14 #Javascript
JQuery选择器特辑 详细小结
May 14 #Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
May 14 #Javascript
js split 的用法和定义 js split分割字符串成数组的实例代码
May 13 #Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
May 11 #Javascript
基于jQuery的公告无限循环滚动实现代码
May 11 #Javascript
You might like
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
Js控制弹窗实现在任意分辨率下居中显示
2013/08/01 Javascript
css配合jquery美化 select
2013/11/29 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
2014/04/04 Javascript
Javascript的表单验证-揭开正则表达式的面纱
2016/03/18 Javascript
NodeJS 实现手机短信验证模块阿里大于功能
2017/06/19 NodeJs
bootstrap Table插件使用demo
2017/08/07 Javascript
使用JQuery实现图片轮播效果的实例(推荐)
2017/10/24 jQuery
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
JS验证输入的是否是数字及保留几位小数问题
2018/05/09 Javascript
解决vue-cli项目webpack打包后iconfont文件路径的问题
2018/09/01 Javascript
浅谈Fetch 数据交互方式
2018/12/20 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
[00:33]2018DOTA2亚洲邀请赛TNC出场
2018/04/04 DOTA
推荐下python/ironpython:从入门到精通
2007/10/02 Python
python实现ip查询示例
2014/03/26 Python
python中enumerate函数遍历元素用法分析
2016/03/11 Python
Python中的列表生成式与生成器学习教程
2016/03/13 Python
python抓取搜狗微信公众号文章
2019/04/01 Python
python 杀死自身进程的实现方法
2019/07/01 Python
使用python进行广告点击率的预测的实现
2019/07/04 Python
python实现从ftp上下载文件的实例方法
2020/07/19 Python
一款利用纯css3实现的win8加载动画的实例分析
2014/12/11 HTML / CSS
html2 canvas生成清晰的图片实现打印功能
2019/09/23 HTML / CSS
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
建筑设计所实习生自我鉴定
2013/09/25 职场文书
令人啧啧称赞的经理推荐信
2013/11/07 职场文书
新闻专业学生的自我评价
2014/02/13 职场文书
刚毕业大学生自荐信范文
2014/02/20 职场文书
服装设计专业自荐信
2014/06/17 职场文书
2015年八一建军节演讲稿
2015/03/19 职场文书
大学校园招聘会感想
2015/08/10 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
详解CSS伪元素的妙用单标签之美
2021/05/25 HTML / CSS