带有固定定位子元素的可滚动 div 上的 iOS 动量滚动

尼尔 B.

我正在开发一个有主导航栏和几个视图的角度 web 应用程序,每个视图都有自己的子导航栏。

每个视图都维护在一个可滚动的 div 中,并且在任何给定时间只有一个 div 可见。

这些视图使用 'will-change' CSS 属性进行硬件加速,使用 -webkit-overflow-scrolling CSS 属性启用动量滚动。

在这些 DIV 中的每一个中,都有一个子导航栏,它固定在主导航栏之后。

除了一个恼人的故障外,一切都按预期工作,在 iPad/iPhone 上,子导航栏不断跳出然后进入其位置。

这是说明问题的笔当您在 iPad/iPhone 上滚动时,请注意黄色 SUB MENU 上的那些故障...

HTML:

<html>
  <head>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  </head>
  <body>
    <div class="main_header">
      MAIN MENU
    </div>
    <div class="views-container">
      <div class="view">
        <div class="view-header test">
          SUB MENU
        </div>
        <div>
          CONTENT
        </div>
      </div>
    </div>
  </body>
</html>

CSS:

html, body {
    overflow-x: hidden;
    overflow-y: hidden;
    height: 100%;
}

.main_header {
  background-color:green;
  position: fixed;
  top:0px;
  left: 0px;
  width: 100%;
  opacity: 0.9;
}

.views-container {
  position: fixed;
  top: 18px;
  bottom: 0px;
  left: 0px;
  right: 0px;
}

.view {
  position: absolute;
  width: 100%;
  height: 100%;
  overflow-x: hidden;
  overflow-y: scroll;
  -webkit-overflow-scrolling: touch;
  will-change: opacity;
}

.view-header {
  background-color:yellow;
  position: fixed;
  width: 100%;
  opacity: 0.9;
  z-index: 1000;
}

我已经在网上搜索以寻找解决方案,但到目前为止一无所获。想法?

弗雷德里克·彼得森

(有关 codepen 解决方案,请参阅答案底部)

在我的 iPhone 上测试我可以通过更改以下内容来使子菜单不起作用:

<body>
    <div class="main_header">
      MAIN MENU
    </div>
    <div class="views-container">
      <div class="view"> <-- move this div below "view-header test"
        <div class="view-header test">
          SUB MENU
        </div>
        <div class="container-fluid">

至:

<body>
    <div class="main_header">
      MAIN MENU
    </div>
    <div class="views-container">
      <div class="view-header test">
          SUB MENU
      </div>
      <div class="view"> <-- move to here
        <div class="container-fluid">

似乎view类的 css 会导致子菜单尝试在 iphone 和 ipad 上滚动。

让我知道这是否适合您

编辑:

另一个解决方案是乱用 css。基本上你的.view类包含你的 .view-header 类,因此内容.view-header也会受到.view类的影响一种解决方案可能是创建一个.view-body类,您可以在其中放置与视图主体相关的任何代码,这些代码不想影响您的标题。然后做

<div class="view">
   <div class="view-header">
      header content. probably does not need to be scroll-able
   </div>
   <div class="view-body">
      body content. probably needs to be scroll-able 
   </div
</div>

双重编辑:

分叉您的代码并进行了我推荐的更改。它现在在我的 iPhone 上完美运行。希望这可以帮助!https://codepen.io/anon/pen/RgWOGx

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用overflow-x在IOS上通过加速/减速进行平滑的本机样式滑动滚动滚动:使用CSS的可滚动div

来自分类Dev

在特定的可滚动div上应用skrollr

来自分类Dev

绝对定位div伸出可滚动的固定位置div

来自分类Dev

如何获得滚动视图的滚动量

来自分类Dev

在firefox中忽略滚动固定高度div上的底部填充

来自分类Dev

在移动设备上滚动内容溢出的固定div

来自分类Dev

在iOS上进行动量滚动(-webkit-overflow-scrolling)可以进行其他所有操作

来自分类Dev

jQuery位置DIV固定在滚动条上

来自分类Dev

在固定元素上滚动元素

来自分类Dev

设置溢出以在固定div上滚动不起作用

来自分类Dev

在div上复制输入滚动

来自分类Dev

在Safari中看不到带有溢出滚动的固定位置Div

来自分类Dev

固定大小的可滚动DIV

来自分类Dev

水平平滑动量滚动

来自分类Dev

Synaptics触摸板:如何激活光标动量(不滚动动量)

来自分类Dev

适用于固定Div的iOS 7溢出滚动

来自分类Dev

在firefox中忽略滚动固定高度div上的底部填充

来自分类Dev

div上的溢出滚动

来自分类Dev

在移动设备上滚动显示内容溢出的固定div

来自分类Dev

jQuery在div上上下滚动

来自分类Dev

使固定位置div可滚动而无需滚动条,也无需滚动背景内容

来自分类Dev

使用鼠标滚轮在div上滚动div

来自分类Dev

在带有溢出的div中的x轴上滚动

来自分类Dev

如何在 iOS 上使灯箱可滚动?

来自分类Dev

如何使用溢出-y 在固定位置 div 上定位粘性标题:滚动

来自分类Dev

防止在“下”div 上滚动

来自分类Dev

WPF 如何影响滚动视图的滚动量

来自分类Dev

绝对定位的 div 不滚动;当其他内容滚动时固定在屏幕上

来自分类Dev

主容器上带有 flexgrow 的水平可滚动 div

Related 相关文章

  1. 1

    使用overflow-x在IOS上通过加速/减速进行平滑的本机样式滑动滚动滚动:使用CSS的可滚动div

  2. 2

    在特定的可滚动div上应用skrollr

  3. 3

    绝对定位div伸出可滚动的固定位置div

  4. 4

    如何获得滚动视图的滚动量

  5. 5

    在firefox中忽略滚动固定高度div上的底部填充

  6. 6

    在移动设备上滚动内容溢出的固定div

  7. 7

    在iOS上进行动量滚动(-webkit-overflow-scrolling)可以进行其他所有操作

  8. 8

    jQuery位置DIV固定在滚动条上

  9. 9

    在固定元素上滚动元素

  10. 10

    设置溢出以在固定div上滚动不起作用

  11. 11

    在div上复制输入滚动

  12. 12

    在Safari中看不到带有溢出滚动的固定位置Div

  13. 13

    固定大小的可滚动DIV

  14. 14

    水平平滑动量滚动

  15. 15

    Synaptics触摸板:如何激活光标动量(不滚动动量)

  16. 16

    适用于固定Div的iOS 7溢出滚动

  17. 17

    在firefox中忽略滚动固定高度div上的底部填充

  18. 18

    div上的溢出滚动

  19. 19

    在移动设备上滚动显示内容溢出的固定div

  20. 20

    jQuery在div上上下滚动

  21. 21

    使固定位置div可滚动而无需滚动条,也无需滚动背景内容

  22. 22

    使用鼠标滚轮在div上滚动div

  23. 23

    在带有溢出的div中的x轴上滚动

  24. 24

    如何在 iOS 上使灯箱可滚动?

  25. 25

    如何使用溢出-y 在固定位置 div 上定位粘性标题:滚动

  26. 26

    防止在“下”div 上滚动

  27. 27

    WPF 如何影响滚动视图的滚动量

  28. 28

    绝对定位的 div 不滚动;当其他内容滚动时固定在屏幕上

  29. 29

    主容器上带有 flexgrow 的水平可滚动 div

热门标签

归档