1.head直接添加一下js代码:viewport标签
1 2 3 4 5 6 7 8 9 10
| <script> var phoneWidth = parseInt(window.screen.width); var phoneScale = phoneWidth/640; var ua = navigator.userAgent; if (/Android (\d+\.\d+)/.test(ua)){ document.write('<meta name="viewport" content="width=640, minimum-scale = '+phoneScale+', maximum-scale = '+phoneScale+', target-densitydpi=device-dpi">'); } else { document.write('<meta name="viewport" content="width=640, user-scalable=no, target-densitydpi=device-dpi" minimal-ui>'); } </script>
|
minimal-ui:iOS 7.1 的 Safari 为 meta 标签新增
minimal-ui 属性,在网页加载时隐藏地址栏与导航栏。
想了解这些属性,请查看链接:http://www.npm8.com/?p=1786
如图:
在过去,用 Safari 打开一个网页后是这样的:
始终强调人性化设计的苹果当然注意到了这点,于是在 iOS 7.1 的 Safari 中为 meta 标签新增 minimal-ui 属性,让网页在加载时便可隐藏顶部的地址栏与底部的导航栏。
如何实现?你只需将 “minimal-ui” 加入 viewport meta 标签的属性中,比如:
<meta name="viewport" content="minimal-ui">
但是:苹果在 iOS 8 中移除了 ‘minimal-ui’,可能的原因是页面内容不应该能够控制系统的 UI。
2.屏幕设备旋转判断
原来屏幕设备旋转判断用js来判断其页面的宽高比例,但是其实css也可以完成这样的功能
1 2 3 4 5 6 7
| <div id="orientLayer" class="mod-orient-layer"> <div class="mod-orient-layer__content"><i class="icon mod-orient-layer__icon-orient"></i> <div class="mod-orient-layer__desc">为了更好的体验,请使用竖屏浏览</div> </div> </div>
|
css样式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| @-webkit-keyframes rotation { 10% { transform: rotate(90deg); -webkit-transform: rotate(90deg) } 50%, 60% { transform: rotate(0deg); -webkit-transform: rotate(0deg) } 90% { transform: rotate(90deg); -webkit-transform: rotate(90deg) } 100% { transform: rotate(90deg); -webkit-transform: rotate(90deg) } }
@keyframes rotation { 10% { transform: rotate(90deg); -webkit-transform: rotate(90deg) } 50%, 60% { transform: rotate(0deg); -webkit-transform: rotate(0deg) } 90% { transform: rotate(90deg); -webkit-transform: rotate(90deg) } 100% { transform: rotate(90deg); -webkit-transform: rotate(90deg) } }
#orientLayer { display: none; }
@media screen and (min-aspect-ratio: 13/8) { #orientLayer { display: block; width:100%; height:100%; } }
.mod-orient-layer { display: none; position: fixed; height: 100%; width: 100%; left: 0; top: 0; right: 0; bottom: 0; background: #333; z-index: 9997 }
.mod-orient-layer__content { position: absolute; width: 100%; top: 45%; margin-top: -75px; text-align: center }
.mod-orient-layer__icon-orient { background-image: url(../images/icon-orient.png); display: inline-block; width: 67px; height: 109px; transform: rotate(90deg); -webkit-transform: rotate(90deg); -webkit-animation: rotation infinite 1.5s ease-in-out; animation: rotation infinite 1.5s ease-in-out; -webkit-background-size: 67px; background-size: 67px }
.mod-orient-layer__desc { margin-top: 20px; font-size: 15px; color: #fff }
|
当屏幕横屏的时候会有如下的效果: