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 相关文章推荐
利用CSS、JavaScript及Ajax实现高效的图片预加载
Oct 16 Javascript
开发中可能会用到的jQuery小技巧
Mar 07 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
Jun 03 Javascript
使用JavaScript实现ajax的实例代码
May 11 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
May 30 Javascript
jQuery动态加载css文件实现方法
Jun 15 Javascript
通过学习bootstrop导航条学会修改bootstrop颜色基调
Jun 11 Javascript
基于jQuery封装的分页组件
Jun 26 jQuery
webpack打包react项目的实现方法
Jun 21 Javascript
JavaScript栈和队列相关操作与实现方法详解
Dec 07 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
Sep 19 Javascript
vue ssr+koa2构建服务端渲染的示例代码
Mar 23 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
兼容ie6浏览器的php下载文件代码分享
2014/07/14 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
Javascript Math对象
2009/08/13 Javascript
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
javaScript NameSpace 简单说明介绍
2013/07/18 Javascript
jCallout 轻松实现气泡提示功能
2013/09/22 Javascript
JQuery的ready函数与JS的onload的区别详解
2013/11/21 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
javascript实例分享---具有立体效果的图片特效
2014/06/08 Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
2015/10/09 Javascript
jQuery下拉框的简单应用
2016/06/24 Javascript
值得收藏的vuejs安装教程
2017/11/21 Javascript
详解如何实现一个简单的 vuex
2018/02/10 Javascript
jQuery实现table表格checkbox全选的方法分析
2018/07/04 jQuery
webpack4 入门最简单的例子介绍
2018/09/05 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
原生JS实现拖拽功能
2020/12/16 Javascript
python中的reduce内建函数使用方法指南
2014/08/31 Python
Python连接mssql数据库编码问题解决方法
2015/01/01 Python
编写Python小程序来统计测试脚本的关键字
2016/03/12 Python
Python Grid使用和布局详解
2018/06/30 Python
对pandas的算术运算和数据对齐实例详解
2018/12/22 Python
python中可以声明变量类型吗
2020/06/18 Python
Python hashlib和hmac模块使用方法解析
2020/12/08 Python
python基于opencv 实现图像时钟
2021/01/04 Python
利用python为PostgreSQL的表自动添加分区
2021/01/18 Python
StubHub中国:购买和出售全球活动门票
2020/01/01 全球购物
播音主持女孩的自我评价分享
2013/11/20 职场文书
酒店总经理助理职责
2014/02/12 职场文书
小学生演讲稿大全
2014/04/25 职场文书
中文专业求职信
2014/06/20 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
2014年会计人员工作总结
2014/12/10 职场文书
初三语文教学反思
2016/03/03 职场文书
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL
win11电脑关机鼠标灯还亮怎么解决? win11关机后鼠标灯还亮解决方法
2023/01/09 数码科技