1

我正在构建一个具有固定位置的标题的站点,其中包含一个选择菜单。由于位置:在css中固定,标题应该保持锁定在屏幕顶部。但是,当在 iphone 上单击移动 safari 中的选择菜单时,当 ios 选择菜单打开时,标题不再锁定在顶部。似乎 ios 将带有选择菜单的 div 居中到菜单上方屏幕的可见区域。当页面滚动到顶部时不会发生这种情况,但是当地址栏不可见时,它会像这样“中断”。没有找到其他答案,也许我问错了问题。我还不能发布代码链接,感谢任何帮助。

http://selfconstruc.tv/menu-open.PNG http://selfconstruc.tv/menu-closed.PNG

4

1 回答 1

0

目前,我认为没有完美的解决方案来处理焦点跳跃。在我的情况下,我将标题隐藏在焦点上并再次显示在焦点之外,并且效果很好。我不知道在您的情况下这是否是一种解决方法。

你可以试试这个:

// detect ios device
if(navigator.userAgent.match(/(iPad|iPhone|iPod)/gi)){
  // hide header on focus in and show on focus out
  jQuery("#content").focusin(function(){
    jQuery('#your-header-id').hide();
  })
  jQuery("#content").focusout(function(){
    jQuery('your-header-id').show();
  })
}

#content 是一个 div,您应该在其中拥有所有控件,jQuery .focusin() 检测父元素上的焦点事件,因此每个控件都会触发焦点事件。您将标题隐藏在焦点上并在此之后显示。希望这可以帮助!

于 2013-05-16T08:55:34.660 回答