最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript中offset、client、scroll的屬性總結(jié)

 更新時(shí)間:2015年08月13日 09:00:22   投稿:hebedich  
這篇文章主要介紹了javascript中offset、client、scroll的屬性總結(jié)的相關(guān)資料,需要的朋友可以參考下

HTML元素有幾個(gè)offset、client、scroll開頭的屬性,總是讓人摸不著頭腦。在書中看到記下來,分享給需要的小伙伴。主要是以下幾個(gè)屬性:

  第一組:offsetWidth,offsetHeight,offsetLeft,offsetTop,offsetParent

   第二組:clientWidth,clientHeight,clientLeft,clientTop

  第三組:scrollWidth,scrollHeight,scrollLeft,scrollTop

  詳細(xì)定義如下:

  1.1 HTML元素的offsetWidth,offsetHeight以CSS像素返回它的屏幕尺寸,包含元素的邊框和內(nèi)邊距,不包含外邊距。

  1.2 offsetLeft和offsetTop屬性返回元素的X和Y坐標(biāo)。通常,它們返回值即是文檔坐標(biāo)。但對(duì)于已定位元素的后代元素和一些其他元素(如表格單元),這些屬性返回的坐標(biāo)是相對(duì)于祖先元素的而非文檔。

  1.3 offsetParent屬性指定offsetLeft,offsetTop相對(duì)的父元素。如果offsetParent為null,后兩者的返回值則為文檔坐標(biāo)。因此一般來說,用offsetLeft和offsetTop來計(jì)算元素e的位置需要一個(gè)循環(huán):

//計(jì)算元素的文檔坐標(biāo)
function getElementPosition(e){
  var x=0,y=0;
  while(e !=null){
    x +=e.offsetLeft;
    y +=e.offsetTop;
    e=e.offsetParent; 
  }
  return {x:x, y:y} ;  
} 

該方法計(jì)算的位置也不總是正確的,推薦使用內(nèi)置的getBoundingClientRect()方法。

  2.1 clientWidth和clientHeight類似于offsetWidth和offsetHeight屬性,不同的是它們不包含邊框大小,只包含內(nèi)容和內(nèi)邊距。同時(shí),如果瀏覽器在內(nèi)邊距和邊框之間添加了滾動(dòng)條,clientWidth和clientHeight的返回值也不包含滾動(dòng)條。注意,對(duì)于類型<i>,<code>和<span>這些內(nèi)聯(lián)元素,clientWidth和clientHeight總是返回0。

  2.2 clientLeft和clientTop返回元素的內(nèi)邊距的外邊緣和它的邊框的外邊緣之間的水平距離和垂直距離,通常這些值就等于左邊和上邊的邊框?qū)挾?。但是如果元素有滾動(dòng)條,并且瀏覽器將這些滾動(dòng)條旋轉(zhuǎn)在左側(cè)或頂部,他們就還包含了滾動(dòng)條的寬度。對(duì)于內(nèi)聯(lián)元素,它們總是為0。通常clientLeft和clientTop用處不大。

  3.1 scrollWidth和scollHeight是元素的內(nèi)容區(qū)域加上它的內(nèi)邊距再加上任何溢出內(nèi)容的尺寸。當(dāng)內(nèi)容正好和內(nèi)容區(qū)域匹配而沒有溢出時(shí),這些屬性與clientWidth和clientHeight是相等的。但當(dāng)溢出時(shí),它們就包含溢出的內(nèi)容,返回值比clientWidth和clientHeight要大。

  3.2 scrollLeft和scrollTop指定元素的滾動(dòng)條的位置。注意,scrollLeft和scrollTop是可寫的,通過設(shè)置它們來讓元素中的內(nèi)容滾動(dòng)(HTML元素并沒有類似Window對(duì)象的scrollTo()方法)。

obj.offset[WidthHeightTopLeft]  取控件相對(duì)于父控的位置
event.offset[XY] 取鼠標(biāo)相在觸發(fā)事件的控件中的坐標(biāo)
event.screen[XY] 鼠標(biāo)相對(duì)于屏幕坐標(biāo)
event.client[XY] 鼠標(biāo)相對(duì)于網(wǎng)頁坐標(biāo)在在
obj.scroll[WidthHeightTopLeft] 獲取對(duì)象滾動(dòng)的大小
obj.client[WidthHeightTopLeft] 獲取對(duì)象可見區(qū)域的大小

<!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=gb2312" />
<title>無標(biāo)題文檔</title>
<style type="text/css">
<!--
div{
font-family: "宋體";
font-size: 12px;
color: #000000;
}
#div1{
position:absolute;
background-color:#f0f0f0;
width:200px;
height:200px;
left:20px;
top:0px;
z-index:1;
}
#div2{
background-color:#cfc0cf;
width:200px;
height:210px;
position:absolute;
left:261px;
top:347px;
z-index:100;
}
#div3{
background-color:#abbfbf;
width:200px;
height:200px;
position:absolute;
left:20px;
top:247px;
z-index:100;
}
#div4{
background-color:#cfcfcf;
width:200px;
height:200px;
position:absolute;
left:461px;
top:147px;
z-index:100;
}
-->
</style>
</head>
<body>
<div id='div1' >offset 控件相對(duì)于父窗體的位置</div>
<script>
function offset(ids){
ids.innerHTML="offsetLeft ="+ids.offsetLeft+"<BR>";
ids.innerHTML+="offsetWidth ="+ids.offsetWidth+"<BR>";
ids.innerHTML+="offsetHeight ="+ids.offsetHeight+"<BR>";
ids.innerHTML+="offsetTop ="+ids.offsetTop+"<BR>";
ids.innerHTML+="event.offset 鼠標(biāo)相對(duì)于控件的位置<BR>";
ids.innerHTML+="offsetX ="+event.offsetX+"<BR>";
ids.innerHTML+="offsetY ="+event.offsetY+"<BR>";
}
function screen(ids){
ids.innerHTML="scrollWidth ="+ids.scrollWidth+"<BR>";
ids.innerHTML+="scrollHeight ="+ids.scrollHeight+"<BR>";
ids.innerHTML+="scrollTop ="+ids.scrollTop+"<BR>";
ids.innerHTML+="scrollLeft ="+ids.scrollLeft+"<BR>";
}
function client(ids){
ids.innerHTML="clientWidth ="+ids.clientWidth+"<BR>";
ids.innerHTML+="clientHeight ="+ids.clientHeight+"<BR>";
ids.innerHTML+="clientTop ="+ids.clientTop+"<BR>";
ids.innerHTML+="clientLeft ="+ids.clientLeft+"<BR>";
}
function eventc(ids){
ids.innerHTML="鼠標(biāo)相對(duì)于屏幕坐標(biāo)<BR>event.screenX="+event.screenX+"<BR>";
ids.innerHTML+="event.screenY ="+event.screenY+"<BR>";
ids.innerHTML+="鼠標(biāo)相對(duì)于網(wǎng)頁坐標(biāo)event.clientX="+event.clientX+"<BR>";
ids.innerHTML+="event.clientY ="+event.clientY+"<BR>";
}
</script>
</body>
</html>

各瀏覽器都有這些屬性,有些值可能不一樣。

自己寫代碼,對(duì)比一下結(jié)果,就明白了。

相關(guān)文章

  • 找到了一篇jQuery與Prototype并存的沖突的解決方法

    找到了一篇jQuery與Prototype并存的沖突的解決方法

    找到了一篇jQuery與Prototype并存的沖突的解決方法...
    2007-08-08
  • JavaScript 一行代碼,輕松搞定浮動(dòng)快捷留言-V2升級(jí)版

    JavaScript 一行代碼,輕松搞定浮動(dòng)快捷留言-V2升級(jí)版

    前天熬了大半宿發(fā)了一篇[一行代碼輕松搞定快捷留言功能],同時(shí)發(fā)布了V1.0beta版的快捷留言功能和源代碼,之所以是beta版,就是當(dāng)時(shí)感覺雖然基本功能有了,但是還不夠完善,特性也不一定合理
    2010-04-04
  • JS對(duì)象的深度克隆方法示例

    JS對(duì)象的深度克隆方法示例

    這篇文章主要介紹了JS對(duì)象的深度克隆方法,結(jié)合實(shí)例形式分析了JavaScript深度克隆的實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-03-03
  • Javascript將字符串日期格式化為yyyy-mm-dd的方法

    Javascript將字符串日期格式化為yyyy-mm-dd的方法

    日期格式化相信對(duì)于大家來說再熟悉不過,最近工作中自己利用Javascript就寫了一個(gè),現(xiàn)在將實(shí)現(xiàn)的代碼分享給大家,希望對(duì)有需要的朋友們能有所幫助,感興趣的朋友們下面來一起看看吧。
    2016-10-10
  • Layui 設(shè)置select下拉框自動(dòng)選中某項(xiàng)的方法

    Layui 設(shè)置select下拉框自動(dòng)選中某項(xiàng)的方法

    今天小編就為大家分享一篇Layui 設(shè)置select下拉框自動(dòng)選中某項(xiàng)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • 利用JS實(shí)現(xiàn)搶紅包的三種算法

    利用JS實(shí)現(xiàn)搶紅包的三種算法

    對(duì)于搶紅包來說最重要的就是隨機(jī)性算法,如何確保每個(gè)人獲得金額是趨向于平均的,也就是有平均的概率去隨機(jī),而盡量避免兩極分化,本文給大家介紹了用JS實(shí)現(xiàn)搶紅包的三種算法,文中有相關(guān)的代碼示例,需要的朋友可以參考下
    2024-03-03
  • 十個(gè)你必須要會(huì)的TypeScript技巧分享

    十個(gè)你必須要會(huì)的TypeScript技巧分享

    學(xué)習(xí)Typescript通常是一個(gè)重新發(fā)現(xiàn)的過程。這篇文章為大家整理了十個(gè)你必須要會(huì)的TypeScript技巧,希望對(duì)大家學(xué)習(xí)TypeScript有所幫助
    2023-06-06
  • 純js的右下角彈窗實(shí)例

    純js的右下角彈窗實(shí)例

    下面小編就為大家?guī)硪黄僯s的右下角彈窗實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • 12306驗(yàn)證碼破解思路分享

    12306驗(yàn)證碼破解思路分享

    本文給大家分享的是個(gè)人對(duì)于12306的新的驗(yàn)證碼系統(tǒng)的破解思路,僅僅是思路,還沒進(jìn)行實(shí)地驗(yàn)證,推薦給大家,拋磚引玉吧。
    2015-03-03
  • flv.js的具體使用教程

    flv.js的具體使用教程

    flv.js是一款優(yōu)秀的開源web端flv文件播放器,flv格式目前廣泛應(yīng)用在直播及音視頻錄制領(lǐng)域,本文就詳細(xì)的介紹一下flv.js的具體使用教程,感興趣的可以了解一下
    2023-05-05

最新評(píng)論

杭锦后旗| 乌拉特中旗| 闵行区| 依兰县| 双柏县| 门源| 北宁市| 固镇县| 张北县| 阿图什市| 涞水县| 宁安市| 浑源县| 中卫市| 台东县| 格尔木市| 家居| 汾阳市| 苍溪县| 临清市| 桦南县| 临洮县| 孝感市| 大安市| 达孜县| 舒兰市| 香格里拉县| 巴马| 奉化市| 肃北| 临高县| 承德市| 星子县| 西和县| 龙胜| 芦溪县| 象州县| 奇台县| 淳安县| 赫章县| 沈阳市|