【问题标题】:VueJS disable outer div scroll and enable again after inner div reached its bottomVueJS禁用外部div滚动并在内部div到达底部后再次启用
【发布时间】:2023-03-23 03:39:02
【问题描述】:

我正在做一个带有多个垂直放置的 div 的网页,这是我的概念:

  1. 当滚动条到达第一个div底部时,外部滚动条将被禁用并启用第二个滚动条
  2. 用户必须到达内部滚动条底部才能启用外部滚动条

我试图从互联网上找到名称和样本,但我真的找不到我想要的。所以我想请任何志愿者帮助我了解我的概念。

【问题讨论】:

    标签: javascript html css vue.js


    【解决方案1】:

    我根据您的问题做了一个快速演示,这是否与您正在寻找的类似?

    当内部 div 滚动到底部(大约)时,外部 div 的滚动被激活。

    new Vue({
      el: "#app",
      methods: {
        handleScroll(e) {
          if (e.target.scrollTop > e.target.scrollHeight - 1000) {
            this.$refs.outerDiv.style.overflow = 'auto'
          }
        }
      }
    })
    #outerDiv {
      width: 80%;
      height: 800px;
      background: teal;
      padding: 20px;
      font-size: 2em;
      overflow: hidden;
    }
    
    #innerDiv {
      width: 80%;
      height: 400px;
      background: red;
      padding: 10px;
      color: white;
      font-size: 2em;
      overflow: auto
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
    
    <div id="app">
      <div ref="outerDiv" id="outerDiv">
        <div @scroll="handleScroll" ref="innerDiv" id="innerDiv">
          Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
          in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipiscing elit,
          sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
          dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
        </div>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
        in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipiscing elit,
        sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
        eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
        magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
        cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
        exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
        deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
        ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum
        dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit
        in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
      </div>
    </div>

    【讨论】:

    • 是的,但我也期望当用户向上滚动内部时,外部 div 滚动将再次被禁用,根据您的演示,我无法直接向上滚动内部 div,我必须先点击它向上滚动
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 2012-07-13
    • 2010-09-21
    • 1970-01-01
    相关资源
    最近更新 更多