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修改table中Td的值(定义td的双击事件)
Jan 10 Javascript
15条JavaScript最佳实践小结
Aug 09 Javascript
JS/Jquery判断对象为空的方法
Jun 11 Javascript
JavaScript兼容浏览器FF/IE技巧
Aug 14 Javascript
微信小程序 scroll-view组件实现列表页实例代码
Dec 14 Javascript
jquery广告无缝轮播实例
Jan 05 Javascript
jQuery实现标签子元素的添加和赋值方法
Feb 24 jQuery
微信小程序生成二维码的示例代码
Mar 29 Javascript
vue中提示$index is not defined错误的解决方式
Sep 02 Javascript
antd的select下拉框因为数据量太大造成卡顿的解决方式
Oct 31 Javascript
小程序实现文字循环滚动动画
Jun 14 Javascript
JavaScript 事件捕获冒泡与捕获详情
Nov 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实现mysql封装类示例
2014/05/07 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
2016/01/09 PHP
PHP简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
php+ajax实现商品对比功能示例
2019/04/13 PHP
Js 弹出框口并返回值的两种常用方法
2010/12/30 Javascript
滚动图片效果 jquery实现回旋滚动效果
2013/01/08 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
2013/10/18 Javascript
jQuery操作CheckBox的方法介绍(选中,取消,取值)
2014/02/04 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
当jquery ajax遇上401请求的解决方法
2016/05/19 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
1秒50万字!js实现关键词匹配
2016/08/01 Javascript
angular过滤器实现排序功能
2017/06/27 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
python爬取安居客二手房网站数据(实例讲解)
2017/10/19 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
2018/08/24 Javascript
python3读取MySQL-Front的MYSQL密码
2017/05/03 Python
python urllib爬取百度云连接的实例代码
2017/06/19 Python
Python正则表达式常用函数总结
2017/06/24 Python
python将控制台输出保存至文件的方法
2019/01/07 Python
Python向excel中写入数据的方法
2019/05/05 Python
Python处理session的方法整理
2019/08/29 Python
pycharm 更改创建文件默认路径的操作
2020/02/15 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
2020/04/23 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
2020/10/20 Python
德国足球商店:OUTFITTER
2019/05/06 全球购物
新学期校长寄语
2014/01/18 职场文书
颁奖典礼主持词
2014/03/25 职场文书
大学新闻系应届生求职信
2014/06/02 职场文书
旅游项目合作意向书
2015/05/08 职场文书
保护地球的宣传语
2015/07/13 职场文书
mysql优化之query_cache_limit参数说明
2021/07/01 MySQL
CSS3 Tab动画实例之背景切换动态效果
2021/08/23 HTML / CSS
Web应用开发TypeScript使用详解
2022/05/25 Javascript