css 强制“横向”定向模式

bmp9r5qi  于 2023-01-14  发布在  其他
关注(0)|答案(4)|浏览(124)

我试图强制我的应用程序使用“横向”模式,因为我的应用程序绝对不是为“纵向”模式设计的。我该怎么做呢?

jljoyd4f

jljoyd4f1#

    • 现在可以使用HTML5 Web应用清单。请参阅下文。**
    • 原答复:**

您无法将网站或网络应用程序锁定在特定方向,这违反了设备的自然行为。
您可以使用如下CSS3介质查询检测设备方向:

@media screen and (orientation:portrait) {
    // CSS applied when the device is in portrait mode
}

@media screen and (orientation:landscape) {
    // CSS applied when the device is in landscape mode
}

或者通过绑定JavaScript方向更改事件,如下所示:

document.addEventListener("orientationchange", function(event){
    switch(window.orientation) 
    {  
        case -90: case 90:
            /* Device is in landscape mode */
            break; 
        default:
            /* Device is in portrait mode */
    }
});
    • 2014年11月12日更新:现在可以使用HTML5 Web应用清单实现。**

html5rocks.com中所述,现在可以使用manifest.json文件强制方向模式。
您需要将这些行包含到json文件中:

{
    "display":      "standalone", /* Could be "fullscreen", "standalone", "minimal-ui", or "browser" */
    "orientation":  "landscape", /* Could be "landscape" or "portrait" */
    ...
}

您需要将清单包含到html文件中,如下所示:

<link rel="manifest" href="manifest.json">

不太确定webapp清单上对锁定方向模式的支持是什么,但chrome肯定在那里。当我有信息时会更新。

vwkv1x7d

vwkv1x7d2#

screen.orientation.lock('landscape');

将强制它更改为并保持横向模式。在Nexus 5上测试。
http://www.w3.org/TR/screen-orientation/#examples

bz4sfanl

bz4sfanl3#

我使用的一些css如下(基于css tricks):

@media screen and (min-width: 320px) and (max-width: 767px) and (orientation: portrait) {
  html {
    transform: rotate(-90deg);
    transform-origin: left top;
    width: 100vh;
    height: 100vw;
    overflow-x: hidden;
    position: absolute;
    top: 100%;
    left: 0;
  }
}
qzlgjiam

qzlgjiam4#

我有同样的问题,这是一个丢失的manifest.json文件,如果没有找到浏览器决定与方向是最适合的,如果你不指定文件或使用错误的路径。
我修正了在html头上正确调用manifest.json的问题。
我的html标题:

<meta name="application-name" content="App Name">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<link rel="manifest" href="manifest.json">
<meta name="msapplication-starturl" content="/">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="theme-color" content="#">
<meta name="msapplication-TileColor" content="#">
<meta name="msapplication-config" content="browserconfig.xml">
<link rel="icon" type="image/png" sizes="192x192" href="android-chrome-192x192.png">
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
<link rel="mask-icon" href="safari-pinned-tab.svg" color="#ffffff">
<link rel="shortcut icon" href="favicon.ico">

以及manifest.json文件内容:

{
  "display": "standalone",
  "orientation": "portrait",
  "start_url": "/",
  "theme_color": "#000000",
  "background_color": "#ffffff",
  "icons": [
  {
    "src": "android-chrome-192x192.png",
    "sizes": "192x192",
    "type": "image/png"
  }
}

要生成您的收藏夹图标和图标,请使用此网络工具:https://realfavicongenerator.net/
要生成清单文件,请用途:https://tomitm.github.io/appmanifest/
我的PWA工作得很好,希望对你有帮助!

相关问题