当前位置: 代码网 > it编程>编程语言>Javascript > vue项目中onscroll的坑及解决

vue项目中onscroll的坑及解决

2024年05月18日 Javascript 我要评论
vue项目中onscroll的坑在项目中需要监听一个组件的scroll事件,以触发到底时加载更多。但是实际操作下来发现scroll事件并没有被监听到。通过查询资料得知,监听的目标元素element的s

vue项目中onscroll的坑

在项目中需要监听一个组件的scroll事件,以触发到底时加载更多。

但是实际操作下来发现scroll事件并没有被监听到。

通过查询资料得知,监听的目标元素element的scroll事件不冒泡。

解决scroll绑定失败的方法

scroll直接绑定在window的捕获阶段;

window.addeventlistener(‘scroll',methodname,true);

还有另外一个方式:

使用谷歌浏览器的开发者工具 performance 录制滚动动作,在event log 里查看scroll事件的目标元素,给这个元素绑定scroll事件。

如下图:


这里我们发现了scroll事件的目标元素是div.info-bottom,我们直接给它绑定scroll事件就可以了。

vue关于滚动事件v-on:scroll

vue关于滚动页面

全局监听滚动

created() {
var _this = this;        
window.addeventlistener('scroll',()=>{//触发事件},true);
}

局部监听

<!--添加ref-->
<div class="headcol" ref="viewbox">
    <table>
        <thead>
            <tr >
                <td v-for="c in list.header">
                    {{c}}
                </td>
            </tr>
        </thead>
        <tbody>
            <tr  v-for="r in list.rows">
                <td v-for="c in r">
                    {{c}}
                </td>
            </tr>
        </tbody>
    </table>
</div>
// 首先通过$refs获取dom元素
this.box = this.$refs.viewbox
// 监听这个dom的scroll事件
this.box.addeventlistener('scroll', () => {
  console.log(this.$refs.viewbox.scrolltop)
}, false)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com