【发布时间】:2014-05-12 11:41:33
【问题描述】:
我编写了一些简单的代码来侦听“orientationchange”(Safari/iOS)事件,然后尝试将 div 的大小调整为新的窗口方向/大小。
问题是调整大小和定位没有按我预期的方式工作。我希望 div 调整大小(使用渐变背景)并填充屏幕。我附上了屏幕截图以突出显示问题。
如果有人能告诉我为什么我的代码不起作用,我将不胜感激。
我的测试是使用 Apple 的 iPhone 模拟器,打开 Safari(在模拟器上)并将其指向我的本地主机,其中包含以下测试代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Div Resizing/positioning Test</title>
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, minimal-ui">
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<style>
.masterTemplate {
position: absolute;
left:0px;
top:0px;
background: -webkit-linear-gradient( -70deg, black 60%, navy );
border: 1px solid magenta;
overflow: hidden;
}
</style>
</head>
<body>
<div id="masterTemplate"></div>
<script>
$(document).ready( function() {
console.log("document ready");
window.addEventListener("orientationchange", onOrientationChange );
$("#masterTemplate").css( { width:window.innerWidth, height:window.innerHeight } );
$("#masterTemplate").addClass("masterTemplate");
function onOrientationChange(event) {
console.log('onOrientationChange',event);
$("#masterTemplate").removeClass("masterTemplate");
$("#masterTemplate").css({ width:window.innerWidth, height:window.innerHeight, top:"0px", left:"0px" });
$("#masterTemplate").addClass("masterTemplate");
}
} );
</script>
</body>
</html>
【问题讨论】:
-
.masterTemplate {height:100%;width:100%}怎么样? -
...感谢您的回复。我已经尝试过你的建议,它没有任何区别。屏幕上的位置不正确。
标签: javascript ios css html mobile-safari