webView 自適應高度 document.body 屬性,webview高度自適應
前段時間開發遇到webView 高度自適應問題,用最初的方法無效,找了些資料,記錄下。
1、若網頁中含有< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >這一行代碼,則應該使用document.documentElement
2、若網頁中只有而沒有上面的一行代碼,則JS指令碼應該使用document.body
下面的是從網上找到的一點資訊,希望對以後有點用處:
在設計頁面時可能經常會用到固定層的位置,這就需要擷取一些html對象的座標以更靈活的設定目標層的座標,這裡可能就會用到document.body.scrollTop等屬性,但是此屬性在xhtml標準網頁或者更簡單的說是帶< !DOCTYPE..>標籤的頁面裡得到的結果是0,如果不要此標籤則一切正常,那麼在xhtml頁面怎麼獲得body的座標呢,當然有辦法-使用document.documentElement來取代document.body,可以這樣寫
例:
var top = document.documentElement.scrollTop || document.body.scrollTop;
在javascript裡||是個好東西,除了能用在if等條件判斷裡,還能用在變數賦值上。那麼上例等同於下例。
例:
var top = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
這麼寫可以得到很好的相容性。
相反,如果不做聲明的話,document.documentElement.scrollTop反而會顯示為0。
得到各個屬性如下:
網頁可見地區寬: document.body.clientWidth;
網頁可見地區高: document.body.clientHeight;
網頁可見地區寬: document.body.offsetWidth (包括邊線的寬);
網頁可見地區高: document.body.offsetHeight (包括邊線的寬);
網頁本文全文寬: document.body.scrollWidth;
網頁本文全文高: document.body.scrollHeight;
網頁被捲去的高: document.body.scrollTop;
網頁被捲去的左: document.body.scrollLeft;
網頁本文部分上: window.screenTop;
網頁本文部分左: window.screenLeft;
螢幕解析度的高: window.screen.height;
螢幕解析度的寬: window.screen.width;
螢幕可用工作區高度: window.screen.availHeight;
螢幕可用工作區寬度:window.screen.availWidth;
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 相對文檔的水平座標+垂直方向滾動的量
Post by molong on 2009-05-19 11:57 PM #1
要擷取當前頁面的捲軸縱座標位置,用:
document.documentElement.scrollTop;
而不是:
document.body.scrollTop;
documentElement 對應的是 html 標籤,而 body 對應的是 body 標籤。
在標準w3c下,document.body.scrollTop恒為0,需要用document.documentElement.scrollTop來代替;
如果你想定位滑鼠相對於頁面的絕對位置時,你會發現google裡面1000篇文章裡面有999.99篇會讓你使用event.clientX+document.body.scrollLeft,event.clientY+document.body.scrollTop,如果你發現你的滑鼠定位偏離了你的想象,請不要奇怪,這是再正常不過的事情。
ie5.5之後已經不支援document.body.scrollX對象了。
本文轉於:http://l6259710.iteye.com/blog/1319607