自定义滑动到底部触发指令,elementUI实现分页下拉框

这篇具有很好参考价值的文章主要介绍了自定义滑动到底部触发指令,elementUI实现分页下拉框。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在 main.js 中添加

// 自定义滑动到底部指令
Vue.directive('selectLoadMore', {
  bind(el, binding) {
    // 获取element-ui定义好的scroll盒子
    const SELECTWRAP_DOM = el.querySelector('.el-select-dropdown .el-select-dropdown__wrap')
    SELECTWRAP_DOM.addEventListener('scroll', function () {
      if (this.scrollHeight - this.scrollTop < this.clientHeight + 1) {
        binding.value()
      }
    })
  },
})

使用

<el-select
  class="width-max"
  v-model="formValues.hpNumberArr"
  clearable
  filterable
  multiple
  reserve-keyword
  remote
  v-selectLoadMore="selectLoadMore"
  :remote-method="remoteMethod"
  placeholder="请选择表型匹配"
>
  <el-option
    v-for="user in phenotypeList"
    :key="user.id"
    :label="user.label"
    :value="user.value"
  >
  </el-option>
</el-select>
// 下拉加载更多
selectLoadMore() {
  this.phenotypeSearch.pageNum = this.phenotypeSearch.pageNum + 1
  if (this.phenotypeList.length >= this.phenotypeSearch.totalPage) return
  this.readAllUsers() // 请求接口
},
// 远程搜索
remoteMethod(query, callback) {
  this.loading = true
  this.phenotypeSearch.cn = query
  this.phenotypeSearch.pageNum = 1
  this.phenotypeList = []
  callback && callback()
  setTimeout(() => {
    this.loading = false
    this.readAllUsers() // 请求接口
  }, 200)
},
// 获取数据
readAllUsers() {
  let params = {
    pageNum: this.phenotypeSearch.pageNum,
    pageSize: this.phenotypeSearch.pageSize,
    cn: this.phenotypeSearch.cn,
  }
  findListByConditionFun(params).then((res) => {
    this.phenotypeSearch.totalPage = res.data.totalRecords
    this.phenotypeList = this.phenotypeList.concat(
      res.data.data.map((i) => {
        return {
          id: i.id,
          value: i.hpNumber,
          label: i.cn,
        }
      })
    )
  })
},

自定义滑动到底部触发指令,elementUI实现分页下拉框,elementui,vue.js,前端文章来源地址https://www.toymoban.com/news/detail-675014.html

到了这里,关于自定义滑动到底部触发指令,elementUI实现分页下拉框的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • js实现滚轮滑动到底部自动加载

    这里我们用vue实现(原生js相似), 这里我们用一个div当作一个容器; css样式 给上面div添加一个高度 在methods中编写我们的滚动条方法 onScroll(){        // let innerHeight=document.querySelector(\\\"JL\\\").clientHeight //js中使用         //let scrollHeight=document.querySelector(\\\"JL\\\").scrollHeight       

    2024年02月12日
    浏览(41)
  • js实现滚轮滑动到底部自动加载(完整版)

    这里我们用vue实现(原生js相似), 这里我们用一个div当作一个容器; css样式 给上面div添加一个高度 在methods中编写我们的滚动条方法 onScroll(){        // let innerHeight=document.querySelector(\\\"JL\\\").clientHeight //js中使用         //let scrollHeight=document.querySelector(\\\"JL\\\").scrollHeight       

    2024年02月12日
    浏览(42)
  • 40、使用elementUI分别实现前端,后端表格分页

    一、前端分页 1、创建表格 说明:slice(a,b)的作用是从已有的数组中返回选定的元素\\\"a\\\"表示开始,\\\"b\\\"表示结束。 而currentPage和pageSize在此网页的作用会在接下来进行说明。 2、创建分页 说明分页器绑定变量说明: :current-page的值表示当前是第几页; :page-sizes的值表示可以选择一

    2024年02月12日
    浏览(88)
  • 微信小程序 scroll-view 实现自动滑动到底部

    要实现实时聊天功能的话,那么每次有新的消息进来之后,要自动的滚动到底部。 scroll-view 有一个属性 scroll-into-view : 把新进来的消息, push 添加到消息列表 messageList 中。 但页面不会自动往下滚动。 1、在 scrill-view 节点最下面加一个垫片节点。 需要说明的是:这里的 3 个

    2024年02月10日
    浏览(64)
  • elementUI之下拉选项加多选框功能实现vue3+ts

    根据 @牛先森家的牛奶 的代码修改后实现 具体参考原博主文章,这里只对部分细节调整,记录一下

    2024年02月17日
    浏览(48)
  • vue elementui的select组件实现滑到底部分页请求后端接口

    老规矩,直接上最后的实现效果 直接上代码 scrollStop主要是用来诊断select移到底部不再请求数据,默认为false。思路反正就是到底了触发函数处理,pageNo++请求后端接口

    2024年02月07日
    浏览(51)
  • elementUI中el-select数据分页懒加载实现

    工作中使用elementUI框架时, 会经常用到下拉框展示数据,如果数据量很大会影响页面的渲染加载速度。遇到这种情况,通常后端代码会将数据做成分页查询,前端下拉框组件也要支持滑动到底部会自动加载下一页数据。话不多说,直接上代码。 这样子组件下拉框就实现了检索、

    2024年02月12日
    浏览(52)
  • vue3+elementUI-plus实现select下拉框的虚拟滚动

    网上查了几个方案,要不就是不兼容,要不就是不支持vue3, 最终找到一个合适的,并且已上线使用,需要修改一下样式: 代码如下: main.js里引用 vue文件: js代码: css代码:

    2024年02月13日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包