js中的scroll和offset 使用比較的實(shí)例與分析
1.offsetTop :
當(dāng)前對(duì)象到其上級(jí)層頂部的距離.
不能對(duì)其進(jìn)行賦值.設(shè)置對(duì)象到頁(yè)面頂部的距離請(qǐng)用style.top屬性.
2.offsetLeft :
當(dāng)前對(duì)象到其上級(jí)層左邊的距離.
不能對(duì)其進(jìn)行賦值.設(shè)置對(duì)象到頁(yè)面左部的距離請(qǐng)用style.left屬性.
3.offsetWidth :
當(dāng)前對(duì)象的寬度.
與style.width屬性的區(qū)別在于:如對(duì)象的寬度設(shè)定值為百分比寬度,則無(wú)論頁(yè)面變大還是變小,style.width都返回此百分比,而offsetWidth則返回在不同頁(yè)面中對(duì)象的寬度值而不是百分比值
4.offsetHeight :
與style.height屬性的區(qū)別在于:如對(duì)象的寬度設(shè)定值為百分比高度,則無(wú)論頁(yè)面變大還是變小,style.height都返回此百分比,而offsetHeight則返回在不同頁(yè)面中對(duì)象的高度值而不是百分比值
5.offsetParent :
當(dāng)前對(duì)象的上級(jí)層對(duì)象.
注意.如果對(duì)象是包括在一個(gè)DIV中時(shí),此DIV不會(huì)被當(dāng)做是此對(duì)象的上級(jí)層,(即對(duì)象的上級(jí)層會(huì)跳過(guò)DIV對(duì)象)上級(jí)層是Table時(shí)則不會(huì)有問(wèn)題.
利用這個(gè)屬性,可以得到當(dāng)前對(duì)象在不同大小的頁(yè)面中的絕對(duì)位置.
6.scrollLeft :
對(duì)象的最左邊到對(duì)象在當(dāng)前窗口顯示的范圍內(nèi)的左邊的距離.
即是在出現(xiàn)了橫向滾動(dòng)條的情況下,滾動(dòng)條拉動(dòng)的距離.
7.scrollTop
對(duì)象的最頂部到對(duì)象在當(dāng)前窗口顯示的范圍內(nèi)的頂邊的距離.
即是在出現(xiàn)了縱向滾動(dòng)條的情況下,滾動(dòng)條拉動(dòng)的距離.
【代碼】測(cè)試offsetTop和scrollTop的html代碼
<html>
<head>
<meta content="text/html;charset=utf-8" http-equiv="content-type"/>
<script type="text/javascript">
function test1(){
var div = document.getElementById("div1");
document.getElementById("li1").innerHTML = (div.offsetTop)+"px";//div1距離屏幕頂部的距離
document.getElementById("li2").innerHTML = (div.offsetLeft)+"px";//div1距離屏幕左部的距離
document.getElementById("li3").innerHTML = (div.scrollTop)+"px";//div1縱向滾動(dòng)條滾動(dòng)的距離
document.getElementById("li4").innerHTML = (div.scrollLeft)+"px";//div1橫向滾動(dòng)條滾動(dòng)的距離
}
function test2(){
var div = document.getElementById("div2");
document.getElementById("li5").innerHTML = (div.offsetTop)+"px";//div2距離屏幕頂部的距離
document.getElementById("li6").innerHTML = (div.offsetLeft)+"px";//div2距離屏幕左部的距離
document.getElementById("li7").innerHTML = (div.scrollTop)+"px";//div2縱向滾動(dòng)條滾動(dòng)的距離
document.getElementById("li8").innerHTML = (div.scrollLeft)+"px";//div2橫向滾動(dòng)條滾動(dòng)的距離
}
function test3(){
var div = document.getElementById("div3");
document.getElementById("li9").innerHTML = (div.offsetTop)+"px";//div3距離屏幕頂部的距離
document.getElementById("li10").innerHTML = (div.offsetLeft)+"px";//div3距離屏幕左部的距離
document.getElementById("li11").innerHTML = (div.scrollTop)+"px";//div3縱向滾動(dòng)條滾動(dòng)的距離
document.getElementById("li12").innerHTML = (div.scrollLeft)+"px";//div3橫向滾動(dòng)條滾動(dòng)的距離
}
</script>
</head>
<body style="border: 10px solid red;padding:0px 0px;margin:5px 10px">
<div>
<DIV style="width:70%;border-right:1px dashed red;float:left;">
<div style="float:left;">
<div id="div1" style="border:5px blue solid;height:400px;width:200px;overflow:auto">
<div style="height: 500px;width:400px">this is test!</div>
</div>
<input type="button" value="CLICK 1" onclick="test1()" style="border: 1px solid purple;height: 25px;"/>
</div>
<div>
<div id="div2" style="border:5px solid yellow;height:400px;width:200px;overflow:auto">
<div style="height: 500px;width:400px">this is test!</div>
</div>
<input type="button" value="CLICK 2" onclick="test2()"style="border: 1px solid purple;height: 25px;"/>
</div>
<div style="clear: both;">
<div id="div3" style="border:5px solid #0080C0;height:400px;width:200px;overflow:auto;clear:both;">
<div style="height: 500px;width:400px">this is test!</div>
</div>
<input type="button" value="CLICK 3" onclick="test3()"style="border: 1px solid purple;height: 25px;"/>
</div>
</DIV>
<DIV style="width: 20%;float:right;margin-right:100px">
<ul>click1結(jié)果:
<li id="li1"></li>
<li id="li2"></li>
<li id="li3"></li>
<li id="li4"></li>
</ul>
<ul>click2結(jié)果:
<li id="li5"></li>
<li id="li6"></li>
<li id="li7"></li>
<li id="li8"></li>
</ul>
<ul>click3結(jié)果:
<li id="li9"></li>
<li id="li10"></li>
<li id="li11"></li>
<li id="li12"></li>
</ul>
</DIV>
</div>
</body>
</html>
上面就是自己測(cè)試用的代碼,可以直接拿來(lái)測(cè)試。
- javascript的offset、client、scroll使用方法詳解
- js中top、clientTop、scrollTop、offsetTop的區(qū)別 文字詳細(xì)說(shuō)明版
- javascript scrollLeft,scrollWidth,clientWidth,offsetWidth 完全詳解
- javascript中offset、client、scroll的屬性總結(jié)
- js之事件冒泡和事件捕獲詳細(xì)介紹
- 阻止JavaScript事件冒泡傳遞(cancelBubble 、stopPropagation)
- javascript事件冒泡詳解和捕獲、阻止方法
- js中獲取事件對(duì)象的方法小結(jié)
- JS的Event事件對(duì)象使用方法
- Js獲取事件對(duì)象代碼
- JS前端知識(shí)點(diǎn)offset,scroll,client,冒泡,事件對(duì)象的應(yīng)用整理總結(jié)
相關(guān)文章
JS解決IOS中拍照?qǐng)D片預(yù)覽旋轉(zhuǎn)90度BUG的問(wèn)題
下面小編就為大家?guī)?lái)一篇JS解決IOS中拍照?qǐng)D片預(yù)覽旋轉(zhuǎn)90度BUG的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09
網(wǎng)站被黑的假象--ARP欺騙之頁(yè)面中加入一段js
網(wǎng)站被黑的假象--ARP欺騙之頁(yè)面中加入一段js...2007-05-05
js常用節(jié)點(diǎn)操作實(shí)例總結(jié)
這篇文章主要介紹了js常用節(jié)點(diǎn)操作,結(jié)合實(shí)例形式總結(jié)分析了JavaScript針對(duì)dom節(jié)點(diǎn)的遍歷、查找、創(chuàng)建、刪除、克隆等相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2023-04-04
javascript設(shè)計(jì)模式 – 命令模式原理與用法實(shí)例分析
這篇文章主要介紹了javascript設(shè)計(jì)模式 – 命令模式,結(jié)合實(shí)例形式分析了javascript命令模式相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04
ASP中進(jìn)行HTML數(shù)據(jù)及JS數(shù)據(jù)編碼函數(shù)
在有些時(shí)候我們無(wú)法控制亂碼的出現(xiàn), 比如發(fā)送郵件的時(shí)候有些郵件顯示亂碼, 比如Ajax返回?cái)?shù)據(jù)總是亂碼. 怎么辦?2009-11-11
javascript顯示倒計(jì)時(shí)控制按鈕的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇javascript顯示倒計(jì)時(shí)控制按鈕的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06

