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随机排序(随即出牌)
Sep 17 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
Nov 19 Javascript
JavaScript设计模式之策略模式实例
Oct 10 Javascript
Node.js中防止错误导致的进程阻塞的方法
Aug 11 Javascript
js仿新浪微博消息发布功能
Feb 17 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
Apr 02 jQuery
Vue使用zTree插件封装树组件操作示例
Apr 25 Javascript
小程序如何写动态标签的实现方法
Feb 05 Javascript
javascript实现留言板功能
Feb 08 Javascript
详解Vue template 如何支持多个根结点
Feb 10 Javascript
js实现盒子拖拽动画效果
Aug 09 Javascript
JS 基本概念详细介绍
Oct 16 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 地区分类排序算法
2013/07/01 PHP
PHP获取文件行数的方法
2015/06/10 PHP
php版微信公众平台接口开发之智能回复开发教程
2016/09/22 PHP
PHP 根据key 给二维数组分组
2016/12/09 PHP
基于ThinkPHP实现的日历功能实例详解
2017/04/15 PHP
PHP数组array类常见操作示例
2020/05/15 PHP
jQuery 1.2.x 升? 1.3.x 注意事项
2009/05/06 Javascript
Cookie 小记
2010/04/01 Javascript
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
2019/01/23 Javascript
vue npm install 安装某个指定的版本操作
2020/08/11 Javascript
VUE 实现element upload上传图片到阿里云
2020/08/12 Javascript
[06:10]6.81新信使新套装!给你一个炫酷的DOTA2
2014/05/06 DOTA
Python闭包实现计数器的方法
2015/05/05 Python
python实现多线程抓取知乎用户
2016/12/12 Python
python字符串常用方法
2018/06/14 Python
python批量下载网站马拉松照片的完整步骤
2018/12/05 Python
对python中大文件的导入与导出方法详解
2018/12/28 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
使用python模拟命令行终端的示例
2019/08/13 Python
基于python实现把图片转换成素描
2019/11/13 Python
Python中qutip用法示例详解
2020/10/02 Python
Linux如何压缩可执行文件
2013/10/21 面试题
餐厅经理岗位职责和岗位目标
2014/02/13 职场文书
投资建议书模板
2014/05/12 职场文书
关于九一八事变的演讲稿2014
2014/09/17 职场文书
2014年教师党员自我评价范文
2014/09/22 职场文书
四风个人对照检查材料思想汇报(办公室通用版)
2014/10/07 职场文书
中学政教处工作总结
2015/08/13 职场文书
iPhone13再次曝光
2021/04/15 数码科技
opencv读取视频并保存图像的方法
2021/06/04 Python
CPU不支持Windows11系统怎么办
2021/11/21 数码科技