vue 使用鼠标滚动加载数据的例子


Posted in Javascript onOctober 31, 2019

关于用鼠标滚动到某个位置我们就去加载数据,这样的场景与业务需求现在越来越常见,现在来分析下《vue.js 实战》中作者的一个解决策略:

1. 设置一个标志位用来判断数据是否在加载中

2. 将滚动区域设置成 overfow:auto(显示滚动条)

3. 给滚动区域加入监听事件并绑定ref属性 来获取DOM实例

4. 当鼠标滚动到底部时,加载数据

4.1 如果此时 标志位为true则 直接退出,不进行此时数据加载

关键代码如下:

<template>
  //...代码省略
//该div 为要滚动区域
<div class="daily-list" ref="list" @scroll="handleScroll">
  // ...
</div>
</template>
<script>
 export default{
   data(){
    return {
      recommendList:[], //存放滚动区域要显示的数据
      isLoading:false //默认没有在加载数据
    }
  },
  methods:{
    //获取数据
    getRecommendList(){
        //表示正在加载数据
      this.isLoading=true;
      $.ajax.get('news/before/'+preDay).then(res=>{
        this.recommendList.push(res);
        //数据请求完成
        this.isLoading=false;
      })
    },
    handleScroll(){
      const $list=this.$refs.list;
        //如果数据有在加载中则这次请求退出
      if(this.isLoading) return; 
      //已经滚动的距离加页面的高度等于整个内容区高度时,视为接触到底部 
      //scrollTop 获取到顶部的滚动距离
      // clientHeight 表示页面视口高度
      // scrollHeight 页面内容的高度 
     if($list.scrollTop+document.body.clientHeight>=$list.scrollHeight){
   this.getRecommendList();
   }
    }
  },
  mounted(){
    this.getRecommendList()
  }
}
</script>
<style>
  width: 300px;
  position: fixed;
  top:0;
  left: 150px;
  //出现滚动条
  overflow: auto;
</style>

以上这篇vue 使用鼠标滚动加载数据的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript中比较字符串是否相等的方法
Jul 23 Javascript
jquery live()调用不存在的解决方法
Feb 26 Javascript
js实现模拟银行卡账号输入显示效果
Nov 18 Javascript
javascript DOM的详解及实例代码
Mar 06 Javascript
jquery Ajax实现Select动态添加数据
Jun 08 jQuery
详解vue.js的事件处理器v-on:click
Jun 27 Javascript
Textarea输入字数限制实例(兼容iOS&amp;安卓)
Jul 06 Javascript
Node.js进阶之核心模块https入门
May 23 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
Aug 08 Javascript
新手简单了解vue
May 29 Javascript
vue 中 elment-ui table合并上下两行相同数据单元格
Dec 26 Javascript
js实现带有动画的返回顶部
Aug 09 Javascript
axios 实现post请求时把对象obj数据转为formdata
Oct 31 #Javascript
Javascript和jquery在selenium的使用过程
Oct 31 #jQuery
使用axios发送post请求,将JSON数据改为form类型的示例
Oct 31 #Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
Oct 31 #Javascript
关于vue表单提交防双/多击的例子
Oct 31 #Javascript
Vuex的实战使用详解
Oct 31 #Javascript
如何在Vue中抽离接口配置文件
Oct 31 #Javascript
You might like
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
2010/03/16 Javascript
jQueryUI写一个调整分类的拖放效果实现代码
2012/05/10 Javascript
javascript中声明函数的方法及调用函数的返回值
2014/07/22 Javascript
AngularJS入门教程之AngularJS指令
2016/04/18 Javascript
详解Backbone.js框架中的模型Model与其集合collection
2016/05/05 Javascript
微信小程序 本地图片按照屏幕尺寸处理
2017/08/04 Javascript
Vue封装Swiper实现图片轮播效果
2018/02/06 Javascript
vue-star评星组件开发实例
2018/03/01 Javascript
微信小程序 简易计算器实现代码实例
2019/09/02 Javascript
JS如何寻找数组中心索引过程解析
2020/06/01 Javascript
Javascript异步流程控制之串行执行详解
2020/09/27 Javascript
[48:22]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
Python转换HTML到Text纯文本的方法
2015/01/15 Python
web.py在SAE中的Session问题解决方法(使用mysql存储)
2015/06/24 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
python创建文件备份的脚本
2018/09/11 Python
python 同时运行多个程序的实例
2019/01/07 Python
Python面向对象程序设计示例小结
2019/01/30 Python
Python with用法:自动关闭文件进程
2019/07/10 Python
Python对wav文件的重采样实例
2020/02/25 Python
Python调用飞书发送消息的示例
2020/11/10 Python
传统HTML页面实现模块化加载的方法
2018/10/15 HTML / CSS
你的自行车健身专家:FaFit24
2016/11/16 全球购物
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
物业管理求职自荐信
2013/09/25 职场文书
计算机网络专业推荐信
2013/11/24 职场文书
最热门的自我评价
2013/12/30 职场文书
买房子个人收入证明
2014/01/16 职场文书
副科竞争上岗演讲稿
2014/05/12 职场文书
事业单位鉴定材料
2014/05/25 职场文书
扬尘污染防治方案
2014/06/15 职场文书
法制宣传口号
2014/06/16 职场文书
2014年后备干部工作总结
2014/12/08 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书