js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
发布时间:2016-12-30 来源:查字典编辑
摘要:复制代码代码如下:js位子表示functiontestClick(oDiv){varoDivId=document.getElementBy...

复制代码 代码如下:

<!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>

<div>

<div id="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教程学习
编程开发子分类