国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

js鼠標及對象坐標控制屬性詳細解析

2019-11-20 21:27:45
字體:
來源:轉載
供稿:網友

offsetTop
獲取對象相對于版面或由 offsetParent 屬性指定的父坐標的計算頂端位置。

offsetLeft
獲取對象相對于版面或由 offsetParent 屬性指定的父坐標的計算左側位置。

offsetHeight
獲取對象相對于版面或由父坐標 offsetParent 屬性指定的父坐標的高度。
IE、Opera 認為 offsetHeight = clientHeight + 滾動條 + 邊框。
NS、FF 認為 offsetHeight 是網頁內容實際高度,可以小于 clientHeight。

offsetWidth
獲取對象相對于版面或由父坐標 offsetParent 屬性指定的父坐標的寬度。

offsetParent
獲取定義對象 offsetTop 和 offsetLeft 屬性的容器對象的引用。

clientHeight
獲取對象的高度,不計算任何邊距、邊框、滾動條或可能應用到該對象的補白。
大家對 clientHeight 都沒有什么異議,都認為是內容可視區(qū)域的高度,也就是說頁面瀏覽器中可以看到內容的這個區(qū)域的高度,一般是最后一個工具條以下到狀態(tài)欄以上的這個區(qū)域,與頁面內容無關。

clientLeft
獲取 offsetLeft 屬性和客戶區(qū)域的實際左邊之間的距離。

clientTop
獲取 offsetTop 屬性和客戶區(qū)域的實際頂端之間的距離。

clientWidth
獲取對象的寬度,不計算任何邊距、邊框、滾動條或可能應用到該對象的補白。

SCROLL屬性

scroll
設置或獲取滾動是否關閉。

scrollHeight
獲取對象的滾動高度。

scrollLeft
設置或獲取位于對象左邊界和窗口中目前可見內容的最左端之間的距離。

scrollTop
設置或獲取位于對象最頂端和窗口中可見內容的最頂端之間的距離。

scrollWidth
獲取對象的滾動寬度。event屬性
x
設置或獲取鼠標指針位置相對于父文檔的 x 像素坐標。

screenX
設置或獲取獲取鼠標指針位置相對于用戶屏幕的 x 坐標

offsetX
設置或獲取鼠標指針位置相對于觸發(fā)事件的對象的 x 坐標。

clientX
設置或獲取鼠標指針位置相對于窗口客戶區(qū)域的 x 坐標,其中客戶區(qū)域不包括窗口自身的控件和滾動條

我們這里說說四種瀏覽器對 document.body 的 clientHeight、offsetHeight 和 scrollHeight 的解釋,這里說的是 document.body,如果是 HTML 控件,則又有不同。

這四種瀏覽器分別為IE(Internet Explorer)、NS(Netscape)、Opera、FF(FireFox)。

clientHeight
大家對 clientHeight 都沒有什么異議,都認為是內容可視區(qū)域的高度,也就是說頁面瀏覽器中可以看到內容的這個區(qū)域的高度,一般是最后一個工具條以下到狀態(tài)欄以上的這個區(qū)域,與頁面內容無關。

offsetHeight
IE、Opera 認為 offsetHeight = clientHeight + 滾動條 + 邊框。 NS、FF 認為 offsetHeight 是網頁內容實際高度,可以小于 clientHeight。

scrollHeight
IE、Opera 認為 scrollHeight 是網頁內容實際高度,可以小于 clientHeight。 NS、FF 認為 scrollHeight 是網頁內容高度,不過最小值是 clientHeight。 簡單地說
clientHeight 就是透過瀏覽器看內容的這個區(qū)域高度。

NS、FF 認為 offsetHeight 和 scrollHeight 都是網頁內容高度,只不過當網頁內容高度小于等于 clientHeight 時,scrollHeight 的值是 clientHeight,而 offsetHeight 可以小于 clientHeight。
IE、Opera 認為 offsetHeight 是可視區(qū)域 clientHeight 滾動條加邊框。scrollHeight 則是網頁內容實際高度。

同理
clientWidth、offsetWidth 和 scrollWidth 的解釋與上面相同,只是把高度換成寬度即可。

但是
FF 在不同的 DOCTYPE 中對 clientHeight 的解釋不同, xhtml 1 trasitional 中則不是如上解釋的。其它瀏覽器則不存在此問題。

js獲取頁面高度

復制代碼 代碼如下:

<script>
function getInfo()
{
var s = "";
s += " 網頁可見區(qū)域寬:"+ document.body.clientWidth;
s += " 網頁可見區(qū)域高:"+ document.body.clientHeight;
s += " 網頁可見區(qū)域寬:"+ document.body.offsetWidth + " (包括邊線和滾動條的寬)";
s += " 網頁可見區(qū)域高:"+ document.body.offsetHeight + " (包括邊線的寬)";
s += " 網頁正文全文寬:"+ document.body.scrollWidth;
s += " 網頁正文全文高:"+ document.body.scrollHeight;
s += " 網頁被卷去的高(ff):"+ document.body.scrollTop;
s += " 網頁被卷去的高(ie):"+ document.documentElement.scrollTop;
s += " 網頁被卷去的左:"+ document.body.scrollLeft;
s += " 網頁正文部分上:"+ window.screenTop;
s += " 網頁正文部分左:"+ window.screenLeft;
s += " 屏幕分辨率的高:"+ window.screen.height;
s += " 屏幕分辨率的寬:"+ window.screen.width;
s += " 屏幕可用工作區(qū)高度:"+ window.screen.availHeight;
s += " 屏幕可用工作區(qū)寬度:"+ window.screen.availWidth;
s += " 你的屏幕設置是 "+ window.screen.colorDepth +" 位彩色";
s += " 你的屏幕設置 "+ window.screen.deviceXDPI +" 像素/英寸";
//alert (s);
}
getInfo();
</script>

在我本地測試當中:
在IE、FireFox、Opera下都可以使用
document.body.clientWidth
document.body.clientHeight
即可獲得,很簡單,很方便。
而在公司項目當中:
Opera仍然使用
document.body.clientWidth
document.body.clientHeight
可是IE和FireFox則使用
document.documentElement.clientWidth
document.documentElement.clientHeight
原來是W3C的標準在作怪啊
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
如果在頁面中添加這行標記的話

在IE中:
document.body.clientWidth ==> BODY對象寬度
document.body.clientHeight ==> BODY對象高度
document.documentElement.clientWidth ==> 可見區(qū)域寬度
document.documentElement.clientHeight ==> 可見區(qū)域高度

在FireFox中:
document.body.clientWidth ==> BODY對象寬度
document.body.clientHeight ==> BODY對象高度
document.documentElement.clientWidth ==> 可見區(qū)域寬度
document.documentElement.clientHeight ==> 可見區(qū)域高度

在Opera中:
document.body.clientWidth ==> 可見區(qū)域寬度
document.body.clientHeight ==> 可見區(qū)域高度
document.documentElement.clientWidth ==> 頁面對象寬度(即BODY對象寬度加上Margin寬)
document.documentElement.clientHeight ==> 頁面對象高度(即BODY對象高度加上Margin高)

而如果沒有定義W3C的標準,則

IE為:
document.documentElement.clientWidth ==> 0
document.documentElement.clientHeight ==> 0

FireFox為:
document.documentElement.clientWidth ==> 頁面對象寬度(即BODY對象寬度加上Margin寬)document.documentElement.clientHeight ==> 頁面對象高度(即BODY對象高度加上Margin高)

Opera為:
document.documentElement.clientWidth ==> 頁面對象寬度(即BODY對象寬度加上Margin寬)document.documentElement.clientHeight ==> 頁面對象高度(即BODY對象高度加上Margin高)

真是一件麻煩事情,其實就開發(fā)來看,寧可少一些對象和方法,不使用最新的標準要方便許多啊。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 禄丰县| 和静县| 邹平县| 天峻县| 鄂尔多斯市| 巩义市| 岐山县| 台湾省| 菏泽市| 保靖县| 大城县| 阜南县| 宝山区| 定结县| 灵武市| 台州市| 南康市| 张家口市| 建瓯市| 莎车县| 绿春县| 陆河县| 新河县| 嘉禾县| 南郑县| 凤城市| 婺源县| 定安县| 钟山县| 安图县| 台中县| 凉山| 句容市| 牙克石市| 北安市| 新乐市| 黄大仙区| 中超| 金溪县| 塘沽区| 永福县|