vc汽车资讯网
您的当前位置:首页vue指令实现滚动加载监听步骤详解

vue指令实现滚动加载监听步骤详解

来源:vc汽车资讯网


指令可以很好的做这件事情, 下面以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-dropdownwrap');
 
 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() {
 // 这里可以做你想做的任何事 到底执行
},

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

css常用样式总结

houjs/hou-admin中引入ueditor编辑器步骤详解

显示全文