gpt4 book ai didi

javascript - 您如何确定屏幕上哪个元素具有滚动优先权?

转载 作者:行者123 更新时间:2023-12-05 00:33:42 26 4
gpt4 key购买 nike

当我尝试在一个范围内拥有多个滚动条时,会发生一些奇怪的事情。让我澄清一下,在我的代码中,pageContainer 的 id 与“scrollfield”同义,而 contentWrap 的 id 在我下面的解释中与“subscrollfield”同义。
让我也澄清一下,有两个问题:

  • 第一个是滚动功能。 Firefox 是唯一遇到此问题的浏览器,我在其各自的部分中对其进行了描述。它只能在 Firefox 中测试。
  • 第二个是我想如何为滚动添加自定义属性。这目前在 Chrome 中是可测试的,在我得到 Firefox 工作的第一个问题后,它也可以在 Firefox 中测试。

  • 问题一 (对于 PC 上的 Firefox):
    --当你在滚动域(子滚动域)内滚动滚动域时,必须先移动鼠标,才能让客户端知道你打算在子滚动域中滚动;否则,它将假定,尽管您的鼠标悬停在子滚动字段上,但您打算在主滚动字段中滚动。换句话说,我希望您悬停的任何滚动字段都可以滚动。
    --TO TEST:一直滚动到代码片段的底部,然后一直滚动到顶部。 在开始放置鼠标后不要移动鼠标! 这将揭示问题——subscrollfield 没有滚动,即使鼠标悬停在其 div 上也是如此。
    一旦 Firefox 的问题得到修复,就会出现 Chrome 遇到的问题:
    问题二 (适用于 PC 上的 Chrome 或 MAC 上的浏览​​器):
    - 当您在滚动字段(子滚动字段)内的滚动字段中滚动时,它会按预期工作,但我想这样做,如果您在页脚处并且将鼠标悬停在子滚动字段上,则从页脚向上滚动,然后在子字段中向上滚动,然后在主字段中向上滚动。换句话说,如果您向上滚动时光标位于子滚动字段上,我不希望页脚停留在页面底部。
    --TO TEST:滚动到滚动片段的底部,同时将光标保持在屏幕中间,然后向上滚动;您将看到子滚动字段首先向上滚动(将页脚保持在底部),然后滚动字段向上滚动。我如何让相反的事情发生?
    这是我网站的伪代码:

    body {
    overflow-y: hidden;
    }

    #pageContainer {
    overflow-y: scroll;
    height: 100vh;
    scroll-snap-type: y mandatory;
    }

    .snapPoint {
    position: relative;
    scroll-snap-align: start none;
    }

    #prelude {
    height: 100vh;
    overflow: hidden;
    background-color: #000020;
    }

    #header {
    width: 100vw;
    height: 9.75vh;
    z-index: 3;
    background: linear-gradient(to top, #167988 0%, #1590A3 20%, #1DB3CA 100%);
    overflow: hidden;
    }

    #contentWrap {
    overflow-y: scroll;
    font-size: 4vw;
    padding: 5vh 0 0;
    height: 85.25vh;
    text-align: center;
    background: linear-gradient(#C3C3C3 0%, #F4F4F4 12vh, #F4F4F4 calc(100% - 15vh), #C3C3C3 100%);
    }

    #footer {
    background: linear-gradient(to top, #167988 0%, #1590A3 20%, #1DB3CA 100%);
    height: 10vw;
    width: 100vw;
    z-index: 3;
    overflow: hidden;
    }
    <body>
    <div id="pageContainer"><!--THIS CONTAINS THE MAIN SCROLL SCOPE (WITH SNAP)-->
    <div id="prelude" class="snapPoint"><h1 style = "color: #F4F4F4;">PRELUDE</h1></div>
    <div id="header" class="snapPoint"></div>
    <div id="contentWrap"><!--THIS CONTAINS THE SUB-SCROLL SCOPE-->
    <p>Test One<br/><br/><br/>Test Two<br/><br/><br/>Test Three<br/><br/><br/>Test Four</p>
    </div>
    <div id="footer" class="snapPoint"></div>
    </div>
    </body>

    我应该如何处理这个问题?我可以编写 JavaScript 来解决这个问题,还是有一些我没有考虑的 CSS 技术?

    最佳答案

    如果我正确理解您的问题,请尝试添加 overscroll-behavior: none在 contentWrap div 上。

    关于javascript - 您如何确定屏幕上哪个元素具有滚动优先权?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66814481/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com