菜鸟教程小白 发表于 2022-12-13 15:49:49

ios - 影响iOS中固定位置元素的溢出限制的解决方法?


                                            <p><h3>编辑:主要问题是这样的:溢出:隐藏和溢出:自动影响 iOS 中的固定定位元素。</h3>

<p>因此,如果我在页面的滚动功能内的组件中有一个固定定位的模态对话框,则该元素不会显示在超出其父级边界的任何位置。这真是一团糟,因为它不是固定定位在任何其他系统上的工作方式。那么官方对此有何回应?</p>

<h3>原帖:</h3>

<p>我有一个在桌面和 Android 上运行良好的模态对话框,但在我 iPad 上的任何浏览器上,模态对话框,包括模态覆盖,在超出其父容器边界的任何地方都会隐藏(即使它是固定的)定位)。我知道这不是溢出:auto 应该可以工作,因为它在所有其他设备上都可以正常工作。还有其他人经历过吗?我确定这与iOS如何处理固定位置有关。</p>

<p>不管怎样,这里有一些代码:</p>

<p>HTML:</p>

<pre><code>&lt;confirm-dialog ng-if=&#34;$ctrl.confirmDlgShowing&#34; on-close=&#34;$ctrl.closeDlgs()&#34; on-confirm=&#34;$ctrl.deleteInstance()&#34; class=&#34;ng-scope ng-isolate-scope&#34;&gt;
    &lt;div class=&#34;modal general modal&#34;&gt;&lt;div class=&#34;modal-window&#34;&gt;&lt;div class=&#34;modal-inner&#34; ng-transclude=&#34;&#34;&gt;
       &lt;div style=&#34;position:relative&#34; class=&#34;ng-scope&#34;&gt;
      &lt;label class=&#34;modal-close&#34; ng-click=&#34;$ctrl.onClose()&#34;&gt;&lt;/label&gt;
      &lt;div class=&#34;page-heading&#34;&gt;
            &lt;h2&gt;Are you sure?&lt;/h2&gt;
      &lt;/div&gt;
            &lt;input class=&#34;btn&#34; type=&#34;button&#34; value=&#34;Yes&#34; ng-click=&#34;$ctrl.confirm()&#34;&gt;
            &lt;input class=&#34;btn&#34; type=&#34;button&#34; value=&#34;No&#34; ng-click=&#34;$ctrl.onClose()&#34;&gt;
      &lt;/div&gt;
    &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/confirm-dialog&gt;
</code></pre>

<p>SASS:</p>

<pre><code>.container {
   overflow: auto;

.modal-window {
// overlay
   @include transition(opacity 0.25s ease);
   @include position(fixed, 0px 0px 0px 0px);
   background: rgba(0,0,0, 0.6);
   padding-top: 0.6em;
   text-align: left;
   z-index: 999999999;
   margin: 0 !important;
   .modal-bg {
      @include position(absolute, 0px 0px 0px 0px);
      cursor: pointer;
   }
}


.modal-inner {
@include transition(opacity 0.25s ease);
background: $modal-background;
border-radius: $base-border-radius;
display: table;
margin: 70px auto;
max-height: 80%;
overflow: auto;
padding: $modal-padding / 2;
z-index: 1000000000;
min-width: 400px;

@media(max-width: $medium-screen) {
   max-height: 70%;
   padding: $modal-padding;
}
}
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这是我们最终想出的解决方法——在将对象放置在主体上的模态中替换 ng-if 的新指令。也可以很好地与其他 Angular 绑定(bind)一起使用。</p>

<pre><code>angular.module(&#39;app&#39;).directive(&#39;rootIf&#39;, function()
{
   return {
      restrict: &#39;A&#39;,
      link: function (scope, $elm, attrs)
         {
         scope.$watch(attrs.rootIf, onChangeRootIf);

         function onChangeRootIf()
            {
            if (scope.$eval(attrs.rootIf))
               $(&#34;body&#34;).children().first().before($elm);
            else
               $elm.detach();
            }
         }
      }
});
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 影响iOS中固定位置元素的溢出限制的解决方法?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/36435155/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/36435155/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 影响iOS中固定位置元素的溢出限制的解决方法?