vue指令做滚动加载和监听等


Posted in Javascript onMay 26, 2019

突然有个人问起vue如何做滚动监听?

既然你诚心诚意的发问了, 我就大发慈悲的告诉你.(武藏 & 小次郎)

指令可以很好的做这件事情, 下面以element-select举例:

directives.js

// v-loadmore: 用于在element-ui的select下拉框加上滚动到底事件监听
Vue.directive('loadmore', {
  bind(el, binding) {
   
   // 获取element-ui定义好的scroll盒子
   const SELECTWRAP_DOM = el.querySelector('.el-select-dropdown .el-select-dropdown__wrap');
  
   SELECTWRAP_DOM.addEventListener('scroll', function() {

     /*
      * scrollHeight 获取元素内容高度(只读)
      * scrollTop 获取或者设置元素的偏移值,常用于, 计算滚动条的位置, 当一个元素的容器没有产生垂直方向的滚动条, 那它的scrollTop的值默认为0.
      * clientHeight 读取元素的可见高度(只读)
      * 如果元素滚动到底, 下面等式返回true, 没有则返回false:
      * ele.scrollHeight - ele.scrollTop === ele.clientHeight;
      */
     const CONDITION = this.scrollHeight - this.scrollTop <= this.clientHeight;
     
     if(CONDITION) {
       binding.value();
     }
   });
  }
})

组件中:

<template>
  <el-select 
    v-model="selectValue" 
    v-loadmore="loadMore">
    <el-option
      v-for="item in options"
      :key="item.id"
      :label="item.accountName"
      :value="item.id">
    </el-option>
  </el-select>
</template>

// methods
loadMore() {
  // 这里可以做你想做的任何事 到底执行
},

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Js 订制自己的AlertBox(信息提示框)
Jan 09 Javascript
javascript面向对象编程(一) 实例代码
Jun 25 Javascript
jquery 学习之二 属性(类)
Nov 25 Javascript
整理8个很棒的 jQuery 倒计时插件和教程
Dec 12 Javascript
JS获取几种URL地址的方法小结
Feb 26 Javascript
JQuery插件Quicksand实现超炫的动画洗牌效果
May 03 Javascript
js字符串截取函数slice、substring和substr的比较
May 17 Javascript
Google Maps基础及实例解析
Aug 06 Javascript
通过命令行生成vue项目框架的方法
Jul 12 Javascript
vue根据值给予不同class的实例
Sep 29 Javascript
Vue中watch、computed、updated三者的区别及用法
Jul 27 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
Nov 13 Javascript
vxe-table vue table 表格组件功能
May 26 #Javascript
使用Vue.observable()进行状态管理的实例代码详解
May 26 #Javascript
微信小程序 swiper 组件遇到的问题及解决方法
May 26 #Javascript
vue项目打包后怎样优雅的解决跨域
May 26 #Javascript
vue实现的上拉加载更多数据/分页功能示例
May 25 #Javascript
vue实现的请求服务器端API接口示例
May 25 #Javascript
Vue Autocomplete 自动完成功能简单示例
May 25 #Javascript
You might like
php检测数组长度函数sizeof与count用法
2014/11/17 PHP
php结合ACCESS的跨库查询功能
2015/06/12 PHP
PHP的PDO预定义常量讲解
2019/01/24 PHP
一些有关检查数据的JS代码
2006/09/07 Javascript
Js之软键盘实现(js源码)
2007/01/30 Javascript
window.ActiveXObject使用说明
2010/11/08 Javascript
基于jquery tab切换(防止页面刷新)
2012/05/23 Javascript
几种延迟加载JS代码的方法加快网页的访问速度
2013/10/12 Javascript
jquery 图片缩放拖动的简单实例
2014/01/08 Javascript
PHP和NodeJs开发的应用如何共用Session
2015/04/16 NodeJs
WordPress 单页面上一页下一页的实现方法【附代码】
2016/03/10 Javascript
Java与JavaScript中判断两字符串是否相等的区别
2017/03/13 Javascript
详解Angular 4 表单快速入门
2017/06/05 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
Javascript中parseInt的正确使用方式
2018/10/17 Javascript
vue+element表格导出为Excel文件
2019/09/26 Javascript
基于redis的小程序登录实现方法流程分析
2020/05/25 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
Python中设置变量访问权限的方法
2015/04/27 Python
Python六大开源框架对比
2015/10/19 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
2016/07/02 Python
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
Django ORM多对多查询方法(自定义第三张表&amp;ManyToManyField)
2019/08/09 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
2020/01/07 Python
Python改变对象的字符串显示的方法
2020/08/01 Python
python 通过exifread读取照片信息
2020/12/24 Python
SHEIN台湾:购买最新流行女装服饰
2019/05/18 全球购物
俄罗斯有趣和原创礼物网上商店:MagicMag
2019/08/01 全球购物
住宅质量保证书
2014/04/29 职场文书
村党支部书记承诺书
2014/05/29 职场文书
唐山大地震的观后感
2015/06/05 职场文书
《检阅》教学反思
2016/02/22 职场文书
python中 Flask Web 表单的使用方法
2022/05/20 Python