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 关于# 和 void的区别分析
Oct 26 Javascript
js tab效果的实现代码
Dec 26 Javascript
JavaScript如何从listbox里同时删除多个项目
Oct 12 Javascript
javascript删除数组元素并且数组长度减小的简单实例
Feb 14 Javascript
jquery控制select的text/value值为选中状态
Jun 03 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
Sep 09 Javascript
JavaScript实现Java中StringBuffer的方法
Feb 09 Javascript
谈谈JavaScript类型系统之Math
Jan 06 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
May 23 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
May 22 Javascript
jQuery 选择器用法基础入门示例
Jan 04 jQuery
浅谈vue中get请求解决传输数据是数组格式的问题
Aug 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
又一个php 分页类实现代码
2009/12/03 PHP
PHP管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
2016/02/23 PHP
解决Laravel blade模板转义html标签的问题
2019/09/03 PHP
jquery 仿QQ校友的DIV模拟窗口效果源码
2010/03/24 Javascript
Js 时间间隔计算的函数(间隔天数)
2011/11/15 Javascript
javaScript(JS)替换节点实现思路介绍
2013/04/17 Javascript
jquery实现checkbox 全选/全不选的通用写法
2014/02/22 Javascript
三种检测iPhone/iPad设备方向的方法
2014/04/23 Javascript
微信小程序 框架详解及实例应用
2016/09/26 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
js通过指定下标或指定元素进行删除数组的实例
2017/01/12 Javascript
基本DOM节点操作
2017/01/17 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
Vue2.0父组件与子组件之间的事件发射与接收实例代码
2017/09/19 Javascript
Vuex 模块化使用详解
2019/07/31 Javascript
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
教你如何编写、保存与运行Python程序的方法
2019/07/12 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
2019/07/19 Python
Django分组聚合查询实例分享
2020/04/29 Python
Python 解析简单的XML数据
2020/07/24 Python
用 python 进行微信好友信息分析
2020/11/28 Python
世界上最大的专业美容用品零售商:Sally Beauty
2017/07/02 全球购物
大客户销售经理职责
2013/12/04 职场文书
理工大学毕业生自荐信范文
2014/02/22 职场文书
党的群众路线教育学习材料
2014/05/12 职场文书
干部鉴定材料
2014/05/18 职场文书
岗位竞聘报告范文
2014/11/06 职场文书
综合素质评价思想道德自我评价
2015/03/09 职场文书
小学主题班会教案
2015/08/17 职场文书
python tkinter实现定时关机
2021/04/21 Python
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS
Springboot/Springcloud项目集成redis进行存取的过程解析
2021/12/04 Redis
python函数的两种嵌套方法使用
2022/04/02 Python
尝试使用Python爬取城市租房信息
2022/04/12 Python