我試圖檢測瀏覽器的當前大小(寬度和高度)。我知道在jQuery中使用$(document).width and $(document).height
非常容易,但我不想將jQuery lib的大小添加到項目中,所以我寧願使用內置的JavaScript。用JavaScript做同樣的事情的簡短有效的方法是什麼?瀏覽器大小(寬度和高度)
41
A
回答
70
// first get the size from the window
// if that didn't work, get it from the body
var size = {
width: window.innerWidth || document.body.clientWidth,
height: window.innerHeight || document.body.clientHeight
}
3
試試這個;
<script type="text/javascript">
winwidth=document.all?document.body.clientWidth:window.innerWidth;
winHeight=document.all?document.body.clientHeight:window.innerHeight;
alert(winwidth+","+winHeight);
</script>
8
function getWindowSize(){
var d= document, root= d.documentElement, body= d.body;
var wid= window.innerWidth || root.clientWidth || body.clientWidth,
hi= window.innerHeight || root.clientHeight || body.clientHeight ;
return [wid,hi]
}
IE瀏覽器是誰不使用innerHeight和寬度的唯一部分。
但是沒有標準的瀏覽器實現。
在檢查主體之前測試html(document.documentElement)clientHeight- 如果它不是0,它是'視口'的高度,body.clientHeight是主體的高度 - 可以更大或小於窗戶。
向後模式爲根元素返回0,並從正文中返回窗口(視口)高度。
與寬度相同。
2
我的案例使用window.innerWidth
涉及建立一個自定義模態彈出窗口。簡單地說,用戶點擊按鈕,彈出窗口在瀏覽器中居中打開,彈出後面有一個透明的黑色背景。我的問題是找到瀏覽器的寬度和高度來創建透明bkgd。
window.innerWidth
很好地發現寬度,但記住window.innerWidth and window.innerHeight
不補償滾動條,所以如果你的內容超出了可見內容區域。我不得不從該值中減去17px。
transBkgd.style.width = (window.innerWidth - 17) + "px";
由於該網站的內容總是超出了可見高度,因此我無法使用window.innerHeight
。如果用戶向下滾動透明背景,那麼會在該點結束,看起來很骯髒。爲了保持透明bkgd一直到我使用的內容的底部document.body.clientHeight
。
transBkgd.style.height = document.body.clientHeight + "px";
我測試了IE,FF,Chrome中的彈出窗口,它看起來很好。我知道這並不太符合原來的問題,但我認爲這可能會有所幫助,如果有人在創建自定義模式彈出窗口時遇到同樣的問題。
3
下面是一個代碼示例
function getSize(){
var w=window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
var h=window.innerHeight || document.documentElement.clientHeight ||document.body.clientHeight;
}
相關問題
- 1. 瀏覽器窗口高度和寬度的大小div
- 2. 媒體查詢瀏覽器大小寬度小於高度
- 3. 瀏覽器寬度和高度
- 4. 更改瀏覽器寬度的li高度調整大小
- 5. 將瀏覽器大小更改爲特定高度/寬度?
- 6. 獲取瀏覽器寬度和高度排除工具欄和菜單大小
- 7. 谷歌瀏覽器中的最大寬度與最大高度
- 8. 儘管寬度和高度在瀏覽器調整大小時丟失內容
- 9. 自動調整大小畫布到瀏覽器寬度和高度
- 10. 更改圖片的寬度和高度根據設備/瀏覽器的大小
- 11. 將Flash div的大小調整爲完整的瀏覽器高度和寬度?
- 12. 在瀏覽器中調整div的寬度和高度用CSS調整大小
- 13. 根據瀏覽器大小動態給出元素寬度/高度屬性
- 14. 在調整瀏覽器窗口大小時,背景圖像的寬度和高度都會調整大小
- 15. 跨瀏覽器輸入按鈕的高度和寬度
- 16. 獲取可用的瀏覽器寬度和高度
- 17. iPad的瀏覽器的寬度和高度標準
- 18. JavaFX獲取瀏覽器寬度和高度
- 19. 瀏覽器忽略css的高度和寬度
- 20. 動態設置瀏覽器高度和寬度
- 21. 使網站符合瀏覽器的寬度和高度
- 22. 在虛擬瀏覽器中獲取頁面寬度和高度
- 23. 如何用CSS調整100%的瀏覽器高度和寬度?
- 24. 視頻循環100%瀏覽器的高度和寬度
- 25. 瀏覽器支持getBoundingClientRect的寬度和高度屬性?
- 26. jquery mobile:爲桌面瀏覽器設置寬度和高度
- 27. 瀏覽器寬度的100%寬度div
- 28. JS檢測瀏覽器的寬度和高度在Chrome瀏覽器和Safari瀏覽器,但不是IE9或FF9
- 29. 最小寬度的瀏覽器窗口
- 30. 如何爲瀏覽器窗口寬度和高度設置寬度和高度變量?
在這已經回答了相當不錯:http://stackoverflow.com/questions/1766861/find-the-exact-height-and-width-of-the -viewport-in-a-cross-browser-way-no-protot – vsync 2010-03-23 14:32:29