scrollLeft,scrollWidth,clientWidth,offsetWidth到底指的哪到哪的距离之完全详解

来源:互联网 发布:企业商标设计软件 编辑:程序博客网 时间:2024/05/17 03:10

转自:http://blog.csdn.net/smartview/archive/2009/02/13/3887669.aspx

 

scrollLeft,scrollWidth,clientWidth,offsetWidth到底指的哪到哪的距离之完全详解

HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth到底指的哪到哪的距离之完全详解



scrollHeight: 获取对象的滚动高度。

scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离

scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离

scrollWidth:获取对象的滚动宽度

offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度

offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置

offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置

event.clientX 相对文档的水平座标

event.clientY 相对文档的垂直座标



event.offsetX 相对容器的水平坐标

event.offsetY 相对容器的垂直坐标

document.documentElement.scrollTop 垂直方向滚动的值

event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量



  以上主要指IE之中,FireFox差异如下:

IE6.0、FF1.06+:

clientWidth = width + padding

clientHeight = height + padding

offsetWidth = width + padding + border

offsetHeight = height + padding + border

IE5.0/5.5:

clientWidth = width - border

clientHeight = height - border

offsetWidth = width

offsetHeight = height

(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)

 

 

下面是一个横向滚动应用:

 

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
  2. <html xmlns="http://www.w3.org/1999/xhtml">   
  3. <head>   
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />   
  5. <title>无标题文档</title>   
  6. </head>   
  7.   
  8.   
  9.   
  10. <body>   
  11. <div id="marquee_demo" style="overflow:auto;width:500px;text-align:center;border:1px solid #ccc">   
  12. <table cellspacing="0" cellpadding="3" align="center" border="0">   
  13. <tr>   
  14.     <td id="marquee_product1" valign="top">   
  15.         <table width="800" height="100" border="0" cellpadding="0" cellspacing="0">   
  16.         <tr>   
  17.             <td width="180" align="center" style="padding:3px 15px 3px 15px;" mce_style="padding:3px 15px 3px 15px;">1</td>   
  18.             <td width="180" align="center" style="padding:3px 15px 3px 15px;" mce_style="padding:3px 15px 3px 15px;">2</td>   
  19.             <td width="180" align="center" style="padding:3px 15px 3px 15px;" mce_style="padding:3px 15px 3px 15px;">3</td>   
  20.             <td width="180" align="center" style="padding:3px 15px 3px 15px;" mce_style="padding:3px 15px 3px 15px;">4</td>   
  21.             <td width="180" align="center" style="padding:3px 15px 3px 15px;" mce_style="padding:3px 15px 3px 15px;">5</td>   
  22.             <td width="180" align="center" style="padding:3px 15px 3px 15px;" mce_style="padding:3px 15px 3px 15px;">6</td>   
  23.             <td width="180" align="center" style="padding:3px 15px 3px 15px;" mce_style="padding:3px 15px 3px 15px;">7</td>   
  24.             <td width="180" align="center" style="padding:3px 15px 3px 15px;" mce_style="padding:3px 15px 3px 15px;">8</td>   
  25.         </tr>   
  26.         </table>           
  27.     </td>   
  28.     <td id="marquee_product2" valign="top"></td>   
  29. </tr>   
  30. </table>   
  31. </div>   
  32. <mce:script type="text/javascript"><!--   
  33.     
  34. var speed=30;   
  35. document.getElementById("marquee_demo").scrollLeft=0;   
  36. /*marquee_product2 = document.getElementById('marquee_product2');  
  37. marquee_product1 = document.getElementById('marquee_product1');  
  38. marquee_demo = document.getElementById('marquee_demo');*/  
  39. //alert(document.getElementById("marquee_demo").scrollLeft);   
  40. //alert(document.getElementById("marquee_product1").scrollWidth);   
  41. document.getElementById("marquee_product2").innerHTML=document.getElementById("marquee_product1").innerHTML;   
  42. //document.getElementById("marquee_product1").innerHTML+=document.getElementById("marquee_product1").innerHTML;   
  43. function Marquee(){    
  44.     if(document.getElementById("marquee_demo").scrollLeft>=document.getElementById("marquee_product1").scrollWidth){    
  45.         document.getElementById("marquee_demo").scrollLeft=0;   
  46.     }   
  47.     else{    
  48.         document.getElementById("marquee_demo").scrollLeft++;   
  49.     }   
  50. }    
  51. var MyMar=setInterval(Marquee,speed);   
  52. document.getElementById("marquee_demo").onmouseover=function(){clearInterval(MyMar);}    
  53. document.getElementById("marquee_demo").onmouseout=function(){MyMar=setInterval(Marquee,speed);}    
  54. // --></mce:script>   
  55.   
  56. </body>   
  57. </html>  
原创粉丝点击