设为首页收藏本站
 找回密码
 注册

用新浪微博连接

一步搞定

QQ登录

只需一步,快速开始

搜索
查看: 529|回复: 2

offsetLeft和clientX的区别是? [复制链接]

Rank: 1

发表于 2011-7-4 10:18:48 |显示全部楼层
offsetLeft和clientX的区别是?

Rank: 9Rank: 9Rank: 9

Medal No.9 Medal No.8 Medal No.7 Medal No.6 Medal No.5 Medal No.4 Medal No.3 Medal No.2 Medal No.10 Medal No.1

发表于 2011-7-4 10:28:42 |显示全部楼层
200902131649313042.gif

5 ]% t1 J% k# ?6 b& p( M5 P: H% L& c. G% H% h

+ |! [  e) S' Q4 W5 t: Y这里如果有框架代码的话,可能会更直接一些,里面有些盒子的值都不知道是哪来的,只选自己看得懂的看吧。以下是对部分值的解释。! A/ f0 r- H) V
2 s+ u/ r7 Z# _: n
1. clientHeight :  都认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度,一般是最后一个工具条以下到状态栏以上的这个区域,与页面内容无关。
5 _9 o( Q; o/ B) }7 `2. clientLeft,clientTop:这两个返回的是元素周围边框的厚度,如果不指定一个边框或者不定位改元素,他的值就是0.
- S/ [# \5 M  S0 i- {9 U& v6 j3. scrollHeight,scrollWidth:不管有多少对象在页面上可见,他们得到的是整体.
0 Q4 H" Q. P5 \, @4. scrollLeft,scrollTop:如果元素是可以滚动的,可以通过这俩个属性得到元素在水平和垂直方向上滚动了多远,单位是象素.
/ t6 G0 e: v) a4 A1 k. A6 K对于不可以滚动的元素,这些值总是0.4 h) y! T: I* J: n$ Z

6 V: V3 d$ p1 J  A( D0 A5.event.clientX 相对文档的水平座标  event.clientY 相对文档的垂直座标5 {; |/ k; t8 r( f

. r& ^: b4 r* Z0 P其它的相关:( t2 n" Y1 D+ K. c

4 d+ k0 p  o% f. L. }; e( ]! `; fscrollHeight: 获取对象的滚动高度(包括padding,不包括border )。( t; G( k1 ~; b4 ?/ \% F
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离: U% m  W+ V0 W7 E) i
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离5 V$ x1 q. B" g2 S# G5 i
scrollWidth:获取对象的滚动宽度
  j" C1 U0 l- ^/ U! N1 N+ Z0 EoffsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度6 a- {  B$ L3 J
offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置3 m0 J% i2 j5 E7 f3 g* m, X8 j
offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
+ p3 L# W1 O8 q; L, W
6 D* Q: s8 ?" U4 xdocument.documentElement.scrollTop 垂直方向滚动的值
6 c) @4 c) ]2 J: ~event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量4 K# |0 ~: s7 f7 J

: @+ K" u. C# }9 P: j*document.body.clientLeft这样的body的值需要特别对待,因为不同浏览器的定义有所不同。比如计算鼠标x轴在页面上的值可以用这个公式:var x = e.clientX + document.documentElement.scrollLeft – document.body.clientLeft ,Y轴的如此类推。  J+ I4 E' H5 U
6 r$ m/ E6 [+ K: h% V" ]
还找到一篇介绍不同浏览器区别的文章:# g, |, c8 p; n% @4 e
9 T1 K1 m5 v& Z: g( ~! I) s
clientHeight
" U$ `5 h9 ~9 m0 M& i7 e' M& U大家对 clientHeight 都没有什么异议,都认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度,一般是最后一个工具条以下到状态栏以上的这个区域,与页面内容无关。5 r2 z) z. n' Q) r
% i+ h; P* g- X& k" _9 m. W
offsetHeight
' l' ?9 T/ e6 N6 _IE、Opera 认为 offsetHeight = clientHeight + 滚动条 + 边框。
* q% ?; J' t: K6 cNS、FF 认为 offsetHeight 是网页内容实际高度,可以小于 clientHeight。6 q; r& m4 V- S& O3 R
" A1 `1 b) Y- t# E* m8 m3 E
scrollHeight' Q( w' }  l( L( T! l
IE、Opera 认为 scrollHeight 是网页内容实际高度,可以小于 clientHeight。$ O9 f) r4 q0 g4 v
NS、FF 认为 scrollHeight 是网页内容高度,不过最小值是 clientHeight。' S. K3 G- v) L% M4 P) Q

9 N8 _- u& J3 R! E6 y* d, o简单地说: R# j( o- c! z! ^7 t/ f! E0 y9 F1 l; }
clientHeight 就是透过浏览器看内容的这个区域高度。
; {: C# Y5 e: e/ G& m2 ~NS、 FF 认为 offsetHeight 和 scrollHeight 都是网页内容高度,只不过当网页内容高度小于等于 clientHeight 时,scrollHeight 的值是 clientHeight,而 offsetHeight 可以小于 clientHeight。) j% D; ?6 T, D- w" O8 O/ }
IE、Opera 认为 offsetHeight 是可视区域 clientHeight 滚动条加边框。scrollHeight 则是网页内容实际高度。
6 A3 f. ]% r/ v  ^. n8 \- S8 r
6 X; V; p0 r$ l) J1 M, H同理
# q; }; b6 ?+ z. I% c+ dclientWidth、offsetWidth 和 scrollWidth 的解释与上面相同,只是把高度换成宽度即可。9 O! h8 f/ q+ _
9 _1 ?* t- i  A7 w: h
但是* C$ z( }/ U7 V7 O0 n7 d( _7 @1 E- |2 H
FF 在不同的 DOCTYPE 中对 clientHeight 的解释不同, xhtml 1 trasitional 中则不是如上解释的。其它浏览器则不存在此问题。3 O7 m' c! D/ q* h3 M) E" c
标题:scrollTop、scrollLeft、scrollWidth、scrollHeight

使用道具 举报

Rank: 1

发表于 2011-7-4 10:29:16 |显示全部楼层
clientX,   clientY是鼠标当前相对于网页的位置,当鼠标位于页面左上角时clientX=0,   clientY=0; $ ]& r& A' l3 g
offsetX,   offsetY是鼠标当前相对于网页中的某一区域的位置,当鼠标位于页面中这一区域的左上角时offsetX=0,   offsetY=0;
1 F5 D6 y  q) OscreenX,   screenY是相对于用户显示器的位置
( u, I: j  ^, \x,y是鼠标当前相对于当前浏览器的位置clientX,   clientY是鼠标当前相对于网页的位置,当鼠标位于页面左上角时clientX=0,   clientY=0; * b( |- M- `, V
offsetX,   offsetY是鼠标当前相对于网页中的某一区域的位置,当鼠标位于页面中这一区域的左上角时offsetX=0,   offsetY=0; 9 {1 s5 k' H2 {. K, `3 T+ h$ c
screenX,   screenY是相对于用户显示器的位置 + |' W% T. q+ U" O
x,y是鼠标当前相对于当前浏览器的位置

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|jQuery爱好者   

GMT+8, 2012-5-23 08:47

Powered by jQfans!

© 2010-2011 jQfans Inc.

回顶部