我有一个移动网站,目前显示时间表。然而,非移动网站上还有一个带有谷歌地图的iFrame,用于显示被跟踪的多辆车。
对于移动网站,我只希望时间表以纵向显示,而只有iframe以横向显示。
我见过这个Can I trigger a CSS event in mobile safari upon iphone orientation change?,但我很难看到如何将其应用到我的查询中。
这是iFrame的CSS:
.map {
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
background-color: #fff;
color: #000;
width: 600px;
height: 500px;
margin-left: 20px;
margin-right: auto;
overflow: hidden;
-moz-box-shadow: inset 0 0 5px #888;
-webkit-box-shadow: inset 0 0 5px #888;
box-shadow: inner 0 0 5px #888;
float: left;
}
答案 0 :(得分:7)
使用@media
@media all and (orientation:portrait) { … }
@media all and (orientation:landscape) { … }
当CSS可以使用时,不要滥用javascript。
答案 1 :(得分:3)
首先,您需要为时间表容器和iFrame分配ID。然后,使用下面的javascript来隐藏或显示它。我假设您的iFrame ID为'map'
,而您的时间表容器为'timetable'
<script type="text/javascript">
var timetable = document.getElementById('timetable');
var map = document.getElementById('map').
window.onorientationchange = function() {
switch(window.orientation) {
case 0: // Portrait
case 180: // Upside-down Portrait
// Javascript to setup Portrait view
timetable.style.display = 'none';
map.style.display = 'block';
break;
case -90: // Landscape: turned 90 degrees counter-clockwise
case 90: // Landscape: turned 90 degrees clockwise
// Javascript to steup Landscape view
timetable.style.display = 'none';
map.style.display = 'block';
break;
}
}
</script>