在iphone mobile safari上,选择具有固定位置的div内的菜单

在iphone mobile safari上,选择具有固定位置的div内的菜单,iphone,select,fixed,Iphone,Select,Fixed,我正在建立一个网站,有一个固定的位置,其中包含一个选择菜单标题。标题应该保持锁定在屏幕顶部,因为位置:固定在css中。但是,在iphone上的mobile safari中单击选择菜单时,当ios选择菜单打开时,标题不再锁定在顶部。似乎ios正在使用select菜单将div居中放置在菜单上方屏幕的可见区域。当页面滚动到顶部时不会发生这种情况,但是当地址栏不可见时,它会像这样“断开”。没有找到其他答案,也许我问错了问题。我还不能发布代码链接,任何帮助都将不胜感激 目前,我认为没有一个完美的解决方案

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


目前,我认为没有一个完美的解决方案来解决焦点跳跃问题。 在我的例子中,我将标题隐藏在“聚焦输入”中,然后在“聚焦输出”中再次显示,效果很好。 我不知道这对你来说是否是一个解决办法

您可以尝试以下方法:

// 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()会检测父元素上的焦点事件,因此每个控件都会触发焦点事件。将标题隐藏在焦点上,然后显示。希望这有帮助

关于IOS上的
position:fixed
问题,有很多文章。在IOS 5.1.1或更早版本中,它根本不起作用。在较新的版本中,它可以工作,但存在一些问题。看到了吗,谢谢你。焦点跳跃准确地描述了我所看到的。