zoukankan      html  css  js  c++  java
  • element UI 下拉菜单滚动监听(vue指令)

    直接看代码吧,可以直接粘贴此代码到你的编辑器中看效果。


    <template>
      <div class="page-component">
      <div class="container">
        <el-select
          v-model="value"
          placeholder="请选择"
          -loadmore="loadMore" >
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value"
            >
          </el-option>
        </el-select>
      </div>
      </div>
    </template>

    <script type="text/ecmascript-6">
      import Vue from 'vue';
      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();
        }
       });
      }
    })
    export default {
      methods: {
        loadMore() {
          console.log(2222) // 这里可以做你想做的任何事 
        },
      },
      data() {
        return {
          options: [{
            value: '选项1',
            label: '黄金糕'
          }, {
            value: '选项2',
            label: '双皮奶'
          }, {
            value: '选项3',
            label: '蚵仔煎'
          }, {
            value: '选项4',
            label: '龙须面'
          }, {
            value: '选项5',
            label: '北京烤鸭'
          },{
            value: '选项6',
            label: '黄金糕'
          }, {
            value: '选项7',
            label: '双皮奶'
          }, {
            value: '选项8',
            label: '蚵仔煎'
          }, ],
          value: ''
        };
      },
    }
    </script>
  • 相关阅读:
    17 Letter Combinations of a Phone Number(medium)
    16 3Sum closest(medium)
    15 3Sum(medium)
    linux环境下搭建自动化Jenkins管理工具
    Danjgo学习笔记(五)----Django数据库的查询
    Danjgo学习笔记(五)----Django中表的关系
    Django常见的Field
    selenium+python+ip池 实现博客园刷博客浏览量
    Danjgo学习笔记(五)----常见模板过滤器和自制过滤器
    Danjgo学习笔记(四)---danjgo框架内的常用标签
  • 原文地址:https://www.cnblogs.com/fmixue/p/9831804.html
Copyright © 2011-2022 走看看