【问题标题】:windows phone 8 HTML5 viewport is higher than the screen after update to 8.0.10328.78windows phone 8 HTML5 视口在更新到 8.0.10328.78 后高于屏幕
【发布时间】:2013-10-31 08:09:07
【问题描述】:

我正在开发一个现有的 Cordova 应用程序,我想将它移植到 windows phone 8。在对渐变和视口问题进行了一些修复之后,似乎一切都正常了。昨天我将手机 (Lumia 520) 更新到了新版本 (8.0.10328.78),突然固定页脚部分超出了屏幕的可视区域。

我已经尽可能地减少了代码,并应用了我能找到的设备宽度/设备高度修复的每一个变体。

即使在 HTML5 示例应用程序中也会出现最基本的情况

<div style="position: fixed; bottom:0; left:0; right:0; background-color: red; height:30px;">footer</div>

被添加到它。除非向下滚动,否则您只能看到前 10 个像素。此外,页脚并不是固定不变的,因为如果您创建一个非常长的页面(多个屏幕长度),页脚将停留在同一位置(大约 20 像素的视野,直到您完全滚动到底部)如果您完全向下滚动,标题的前 20 个像素将被隐藏。

示例应用已经有

@-ms-viewport{ width: 320px; }

默认情况下。但实际上我现在看到的问题与通过添加它解决的问题不同。 (在旧情况下,您会看到页脚在底部上方浮动大约 20 像素,但即使删除了 ms-viewport 部分,这种情况也不会再发生了。)

另外我做了一些测量:

window.screen.height => 800
window.innerHeight => 512
window.outerHeight => 512
$(window).height() => 533

【问题讨论】:

    标签: css html cordova windows-phone-8


    【解决方案1】:

    老问题,但截至 2015 年 1 月,据我所知 Lumia 520+wp8.1,

    <preference name="fullscreen" value="true"/>
    

    在 config.xml 中可以解决问题,将系统托盘留在他的位置。你可以把它放在平台细节中

    <platform name="wp8">
        <preference name="fullscreen" value="true"/>
    </platform>
    

    【讨论】:

    【解决方案2】:

    我在 Cordova/PhoneGap 应用程序中也遇到了这个问题。当我不使用 PhoneGap 时,我什至在 Windows Phone 8 HTML5 应用程序中看到了这个问题(只需在 Visual Studio 2012 中从“模板 -> Visual C# -> Windows Phone HTML5 App”创建一个新项目)。如果您使用 Windows Phone 8 上的 IE 应用程序从托管站点加载相同的 HTML5 代码,则不会出现此问题。

    我发现让视口正常工作的唯一方法是隐藏系统托盘。

    在 MainPage.xaml 中更改

    shell:SystemTray.IsVisible="True"
    

    shell:SystemTray.IsVisible="False"
    

    这会隐藏系统托盘并使您的应用成为全屏应用。

    由于某种原因,当应用全屏显示时,视口的行为符合预期。

    【讨论】:

    • 我可以确认它解决了这个问题。我已经怀疑它与那个酒吧有关,只是没有想到禁用它。抢夺用户的时钟和电池状态并不是很好,但它胜过完全没有固定定位的情况。 (当然,现在我重新设计了应用程序以在没有固定页脚的情况下工作)
    猜你喜欢
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    相关资源
    最近更新 更多