V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
molvqingtai
V2EX  ›  程序员

迫于实现一个 infiniteScroll 组件,求提供思路

  •  
  •   molvqingtai ·
    molvqingtai · Dec 24, 2018 · 2428 views
    This topic created in 2681 days ago, the information mentioned may be changed or developed.
    我遇到这么个问题哪位大佬提供下思路
    我写了一个 infiniteScroll 组件,通过监听滚动条实现,传入两个 props,一个是控制是否禁用加载的 Boolean 变量,一个是触底后要执行的 function,,现在效果是实现了,但是当手动更改数据后(排序),pageSize 不够撑满 html 的情况下,因为没有滚动条,就不会触发滚动事件
    我想实现的效果是 infiniteScroll 和父组件解耦和 data 的数据无关,只要触底就加载,但是因为 pageSize 的问题我还需要传入第三个 props 做判断,大佬们提供下思路

    就几行代码

    5 replies    2018-12-24 16:42:46 +08:00
    tinytin
        1
    tinytin  
       Dec 24, 2018   ❤️ 1
    用 getBoundingClientRect
    mmmfj
        2
    mmmfj  
       Dec 24, 2018
    这个代码图片是怎么生成的
    molvqingtai
        3
    molvqingtai  
    OP
       Dec 24, 2018
    @mmmfj 一个插件 Carbon
    edwardwo
        4
    edwardwo  
       Dec 24, 2018   ❤️ 1
    listEle.addEventListener('wheel', this.infiniteScroll)
    用'wheel' event, 不要用 scroll, scroll 必须有滚动条时才触发. 'wheel' 一滚动, 就触发. 在 infiniteScroll 中再判断:

    scrollHeight = listEle.scrollHeight
    scrollTop = listEle.scrollTop
    offsetHeight = listEle.offsetHeight

    if (scrollHeight === scrollTop + offsetHeight) {
    this.$emit('loadMore')
    }
    molvqingtai
        5
    molvqingtai  
    OP
       Dec 24, 2018
    @edwardwo 问题解决了,感谢大佬!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1486 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 61ms · UTC 16:56 · PVG 00:56 · LAX 09:56 · JFK 12:56
    ♥ Do have faith in what you're doing.