键盘时jquery mobile隐藏固定页脚

前端之家收集整理的这篇文章主要介绍了键盘时jquery mobile隐藏固定页脚前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的iPhone上,我希望在按下文本字段并显示键盘时隐藏页脚.现在它只是将自己定位在键盘上方,并且显示的网站太少.
<div data-role="footer" data-id="foo1" data-position="fixed">
 <div data-role="navbar">
  <div data-role="controlgroup" data-type="vertical">
   <ul><li><input data-iconpos="top" data-icon='plus' type="button" value="Tur" id='nyTur' /></li>
       <li><input data-iconpos="top" data-icon='plus' type="button" value="48%" id='ny48' /></li>
       <li><input data-iconpos="top" data-icon='plus' type="button" value="100%" id='ny100' /></li>
   </ul>
  </div>
 </div><!-- /navbar -->
</div><!-- /footer -->

解决方法

这是一个“正确”的难题.您可以尝试隐藏输入元素焦点上的页脚,并显示模糊,但这在iOS上并不总是可靠的.每隔一段时间(十次,例如,在我的iPhone 4S上)焦点事件似乎无法触发(或者可能是JQuery Mobile存在竞争条件),并且页脚不会被隐藏.

经过多次试验和错误,我想出了这个有趣的解决方案:

<head>
    ...varIoUs JS and CSS imports...
    <script type="text/javascript">
        document.write( '<style>#footer{visibility:hidden}@media(min-height:' + ($( window ).height() - 10) + 'px){#footer{visibility:visible}}</style>' );
    </script>
</head>

基本上:使用JavaScript确定设备的窗口高度,然后动态创建一个CSS媒体查询,以便在窗口高度缩小10个像素时隐藏页脚.因为打开键盘会调整浏览器显示的大小,所以在iOS上永远不会失败.因为它使用的是CSS引擎而不是JavaScript,所以它更快更顺畅!

注意:我发现使用’visibility:hidden’比’display:none’或’position:static’更少,但你的里程可能会有所不同.

猜你在找的jQuery相关文章