![](/img/trans.png)
[英]How do half pixels in browser correlate to JavaScript clientWidth / clientHeight?
[英]clientWidth and clientHeight delayed on Android default browser?
event: 我正在使用jqtouch.js(與zepto.js一起)並測試事件:
http://www.ebi.ac.uk/~mp/test_orientation.html
<!DOCTYPE html>
<meta charset="utf-8">
<html>
<head>
<!-- Local jqTouch -->
<link rel="stylesheet" href="lib/jqtouch-1.0-b4-rc/themes/css/apple.css" title="jQTouch">
<!-- <style type="text/css" media="screen">@import "lib/jqtouch-1.0-b4-rc/themes/css/jqtouch.css";</style> -->
<script src="lib/jqtouch-1.0-b4-rc/src/lib/zepto.min.js" type="text/javascript" charset="utf-8"></script>
<script src="lib/jqtouch-1.0-b4-rc/src/jqtouch.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
var jQT = new $.jQTouch({});
</script>
</head>
<body>
<h1>Hello World</h1>
<script>
window.onorientationchange = function() {
var w = document.documentElement.clientWidth;
var h = document.documentElement.clientHeight;
alert("WIDTH: " + w + " -- HEIGHT: " + h);
}
</script>
</body>
</html>
使用默認的Android瀏覽器打開此頁面時,我得到的clientWidth和clientHeight編號會顛倒(將方向更改為橫向時,高度大於寬度,反之亦然)。 如果我插入一小段延遲:
http://www.ebi.ac.uk/~mp/test_orientation_delay.html
<script>
window.onorientationchange = function() {
setTimeout(function() {
var w = document.documentElement.clientWidth;
var h = document.documentElement.clientHeight;
alert("WIDTH: " + w + " -- HEIGHT: " + h);
}, 500);
}
</script>
正確檢索到clientWidth和clientHeight。 Safari(iOS5)或Chrome不會發生這種情況(它們不需要短暫的延遲即可顯示正確的數字)。 是否有其他方法可以安全地一致地檢索這些數字(而不必引入足夠或不足夠的任意延遲)?
M;
可能為時已晚,但我認為這與事實,事件觸發時你還在尋找在狀態之前做。 新的國家將事件發生后,作為事件只告訴你“我要改變方向,但沒有做到這一點呢。”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.