javascript - 使用javascript检测ie10 Metro地址栏是否存在

标签 javascript internet-explorer

我有一个网站,固定在屏幕底部的 div 中有一些号召性用语按钮。

我们目前使用的 div 绝对定位如下

<div id="buttonBar">footer code</div>
<style>#buttonBar{ bottom: 0; width: 100%;  position: fixed; }</style>

除了 Metro(现代)模式下的 IE10 之外,这在所有浏览器中都运行良好。

单击链接时,地址栏会显示并覆盖按钮栏,然后消失

除了重新设计页面布局之外,我希望按钮栏在显示时位于地址栏的正上方。

有谁知道使用 javaScript 检测地址栏是否可见的方法吗?

最佳答案

您可以尝试将页脚移至位置栏上方,直到位置栏折叠,然后将页脚放回下方。这是一个可能的解决方案:

1. 如果用户可能使用 IE10 支持触摸的浏览器,请将页脚向上移动 50 像素(或其他值)

if (!!window.navigator.msPointerEnabled) { // sniff for IE10 + touch
    $("#buttonBar").css("transform", "translateY(-50px)");
}

2. 监听与浏览器的第一次交互,然后使用位置栏折叠页脚。

$("body").on("MSGestureStart MSInertiaStart MSGestureTap MSPointerDown", function () {
  $("body").off("MSGestureStart MSInertiaStart MSGestureTap MSPointerDown");
  $("#buttonBar").css("transform","translateY(0)");
});
<小时/>

此解决方案并不是 100% 可靠,显然有一些交互会折叠地址栏,但不会触发事件。我正在研究更好的解决方案,一旦找到就会更新,但我想我会分享这个以让事情顺利进行。

关于javascript - 使用javascript检测ie10 Metro地址栏是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14709118/

相关文章:

javascript - 类型错误 : Cannot read property 'Digits' of undefined in twilio when gathering user input from call

javascript - 迭代对象时检查对象与数组

css - 圆 Angular 控件 CSS

javascript - jQuery Ajax 使用 IE 请求本地磁盘耗时太长

javascript - 使用 native javascript/HTML 创建 Html TreeView

javascript - 在字符串末尾使用 JavaScript 的 parseInt

internet-explorer - Adsense 广告未显示在 IE 中(IE浏览器)

internet-explorer - 当我在文本框中按 Enter 时,我需要抑制什么事件才能从 "Dinging"停止 IE?

javascript - jQuery $(form).submit() 仅针对 IE(MVC3 应用程序)不触发

javascript - 显示基于特定登录 ID 的按钮