【问题标题】:Flicker while scrolling down in Safari在 Safari 中向下滚动时闪烁
【发布时间】:2017-08-19 01:34:20
【问题描述】:

我想在某些固定文本下的页面中嵌入 Monaco Editor,我希望 Monaco Editor 的高度恰好填满页面的其余部分。人们给了我一个答案(JSBin):

<html>
    <style>
    body {
        margin: 0;
        height: 100%;
    }

    .rb {
        height: 100%;
        display: flex;
        flex-direction: column;
    }

    .myME {
        flex:1;
        background: grey;
    }

    #container > * {
        max-height:100%;
        overflow:auto;
    }
    </style>
    <body>
        <div class="rb">
            <div class="top">1<br/>2<br/>3<br/>4<br/></div>
            <div class="myME" id="container"></div>    
        </div>
    <script src="https://www.matrixlead.com/monaco-editor/min/vs/loader.js"></script>
    <script>
        require.config({ paths: { 'vs': 'https://www.matrixlead.com/monaco-editor/min/vs' }})

        require(["vs/editor/editor.main"], function () {
          var editor = monaco.editor.create(document.getElementById('container'), {
            value: 'function x() {\n\tconsole.log("Hello world!");\n}',
            language: 'javascript',
            minimap: { enabled: false },
            automaticLayout: true,
            scrollBeyondLastLine: false
          });
        });
    </script>
    </body>
</html>

它适用于 Chrome。然而,在 Safari 中,当快速向下滚动时,我们会看到闪烁。

有谁知道如何解决这个问题?

【问题讨论】:

    标签: css safari flicker


    【解决方案1】:

    删除此规则中的overflow: auto 以修复Safari 滚动故障:

    #container > * {
        max-height: 100%;
        overflow: auto; /* remove this */
    }
    

    【讨论】:

    • 谢谢...删除 overflow: auto 确实修复了 Safari 滚动故障。但是,我们现在可以在 Chrome 和 Safari 中上下滚动时看到滚动条。这不是我想要的。
    • @SoftTimur 啊-我现在明白了。很容易解决,谢天谢地:将 overflow: hidden; 添加到 CSS 顶部的 body { } 规则中。
    • 我正在按照您的指示进行操作,但没有看到该错误。即使我在 Monaco 编辑器中的代码超出了页面高度,我在 Chrome 中也可以看到所有行。在这里测试:jsbin.com/palegunapu/edit?html,output
    • @SoftTimur 酷,很高兴它成功了。不幸的是,您所说的边框是内置在 Monaco 编辑器中的(他们称之为scroll-decoration),我没有看到任何方法可以在他们的编辑器中修改 CSS,所以它很可能必须保留。如果您有任何其他问题,请告诉我。
    • 我有几个关于赏金的问题......如果你能看一下,我将不胜感激......
    猜你喜欢
    • 1970-01-01
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多