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 相关文章推荐
Javascript 函数中的参数使用分析
Mar 27 Javascript
如何判断鼠标是否在DIV的区域内
Nov 13 Javascript
jQuery表格插件ParamQuery简单使用方法示例
Dec 05 Javascript
关闭ie窗口清除Session的解决方法
Jan 10 Javascript
node.js中的buffer.write方法使用说明
Dec 10 Javascript
JS创建对象几种不同方法详解
Mar 01 Javascript
JavaScript对象数组排序实例方法浅析
Jun 15 Javascript
浅谈JS继承_寄生式继承 &amp; 寄生组合式继承
Aug 16 Javascript
利用Bootstrap实现表格复选框checkbox全选
Dec 21 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
Feb 07 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
May 17 Javascript
手机浏览器唤起微信分享(JS)
Oct 11 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
php字符串截取中文截取2,单字节截取模式
2007/12/10 PHP
在win7中搭建Linux+PHP 开发环境
2014/10/08 PHP
php上传文件常见问题总结
2015/02/03 PHP
php如何修改SESSION的生存存储时间的实例代码
2017/07/05 PHP
thinkPHP5.0框架事务处理操作简单示例
2018/09/07 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
PHP实现的策略模式示例
2019/03/20 PHP
Firefox 无法获取cssRules 的解决办法
2006/10/11 Javascript
在html页面中包含共享页面的方法
2008/10/24 Javascript
jQuery.extend 函数详解
2012/02/03 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
对于Form表单reset方法的新认识
2014/03/05 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
AngularJS 视图详解及示例代码
2016/08/17 Javascript
weUI应用之JS常用信息提示弹层的封装
2016/11/21 Javascript
iview tabs 顶部导航栏和模块切换栏的示例代码
2019/03/04 Javascript
关于js陀螺仪的理解分析
2019/04/11 Javascript
python获取指定目录下所有文件名列表的方法
2015/05/20 Python
Python设计模式之命令模式简单示例
2018/01/10 Python
Python实现多线程的两种方式分析
2018/08/29 Python
Python反爬虫技术之防止IP地址被封杀的讲解
2019/01/09 Python
Django框架登录加上验证码校验实现验证功能示例
2019/05/23 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
python ctypes库2_指定参数类型和返回类型详解
2019/11/19 Python
python如何利用paramiko执行服务器命令
2020/11/07 Python
物业招聘计划书
2014/01/10 职场文书
孝老爱亲模范事迹材料
2014/05/25 职场文书
推广活动策划方案
2014/08/23 职场文书
公司给客户的感谢信
2015/01/23 职场文书
成品仓库管理员岗位职责
2015/04/09 职场文书
2015年安置帮教工作总结
2015/05/22 职场文书
大学生奶茶店创业计划书
2019/06/25 职场文书
python绘制简单直方图(质量分布图)的方法
2022/04/21 Python