作家
登录

js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍

作者: 来源:www.28hudong.com 2013-03-30 00:29:30 阅读 我要评论

复制代码 代码如下: <!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同上

  推荐阅读

  基于jquery ajax 用户无刷新登录方法详解

Ajax框架就是提供模块化实现Ajax功能的集合,Ajax框架可以是各种语言实现的(比如SAJAX有各种语言的实现),Ajax只是jquery中的一部分, 实例1 复制代码 代码如下: $.ajax({ type:'post',//可选get url:'action.php>>>详细阅读


本文标题:js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍

地址:http://www.17bianji.com/kaifa2/JS/23438.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)