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 相关文章推荐
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
Jun 30 Javascript
Eclipse配置Javascript开发环境图文教程
Jan 29 Javascript
JavaScript中的Repaint和Reflow用法详解
Jul 27 Javascript
js实现类似菜单风格的TAB选项卡效果代码
Aug 28 Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
May 31 Javascript
浅析BootStrap栅格系统
Jun 07 Javascript
JS获取一个未知DIV高度的方法
Aug 09 Javascript
js实现HashTable(哈希表)的实例分析
Nov 21 Javascript
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
Feb 11 Javascript
js验证身份证号码记录的方法
Apr 26 Javascript
Vue自定义全局弹窗组件操作
Aug 11 Javascript
Vue组件化(ref,props, mixin,.插件)详解
May 15 Vue.js
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为表单获取的URL 地址预设 http 字符串函数代码
2010/05/26 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
php获取淘宝分类id示例
2014/01/16 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
PHP判断一个变量是否为整数、正整数的方法示例
2019/09/11 PHP
php实现大文件断点续传下载实例代码
2019/10/01 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
页面中iframe相互传值传参
2009/12/13 Javascript
关于火狐(firefox)及ie下event获取的两种方法
2012/12/27 Javascript
js螺旋动画效果的具体实例
2013/11/15 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
AngularJS学习第一篇 AngularJS基础知识
2017/02/13 Javascript
JavaScript登录记住密码操作(超简单代码)
2017/03/22 Javascript
react-navigation 如何判断用户是否登录跳转到登录页的方法
2017/12/01 Javascript
详解Vue打包优化之code spliting
2018/04/09 Javascript
webpack4+react多页面架构的实现
2018/10/25 Javascript
vue 解决移动端弹出键盘导致页面fixed布局错乱的问题
2019/11/06 Javascript
python3实现ftp服务功能(客户端)
2017/03/24 Python
Python3 中文文件读写方法
2018/01/23 Python
python数字图像处理之高级形态学处理
2018/04/27 Python
python小程序实现刷票功能详解
2019/07/17 Python
TensorFlow实现简单的CNN的方法
2019/07/18 Python
python爬虫基础知识点整理
2020/06/02 Python
python 多线程中join()的作用
2020/10/29 Python
用 Django 开发一个 Python Web API的方法步骤
2020/12/03 Python
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
Html5画布_动力节点Java学院整理
2017/07/13 HTML / CSS
HTML5中视频音频的使用详解
2017/07/07 HTML / CSS
台湾良兴购物网:EcLife
2019/12/01 全球购物
委托证明的格式
2014/01/10 职场文书
2015年监理工作总结范文
2015/04/07 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
小学生必读成语故事大全:送给暑假的你们
2019/07/09 职场文书
Mac环境Nginx配置和访问本地静态资源的实现
2021/03/31 Servers