1

在我的 Metro 风格应用程序(Windows 8)中,我创建了一个页面叠加层和一个显示消息的弹出窗口。当用户单击页面时,弹出消息将隐藏。但我希望即使用户点击覆盖页面时也能保留弹出窗口。我正在使用 HTML5 和 WinJS。无论如何我可以使用其他控件实现上述场景,或者我可以阻止页面在用户点击/单击屏幕时停止对事件做出反应。

4

1 回答 1

5

这并不是真正支持的——Flyout 本身没有持久/粘性/模态的概念。如果您查看 base.js 中的代码,您会发现它没有公开任何代码来利用 appbar 中使用的内置粘性行为(事实证明,这有点浮出水面。

您可以做几件事:

  • 将“ _sticky: true”传递给弹出的构造函数。例如<div data-win-control="WinJS.UI.Flyout" data-win-options="{ _sticky: true}">
  • 将点击处理程序附加到文档的顶部,如果它在浮出控件创建的点击吃 div 上,则取消事件
  • 通过简单地向 body 添加一个新的 div 并对其进行绝对定位来创建您自己的 UI。
于 2012-09-20T16:09:33.520 回答