关于Vue+iview的简单下拉框滚动加载

话不多说,直接上代码,作用是下拉框内容无限滚动加载:

Html:

  

<FormItem style="position:relative" label="用户名:" prop="userName">
      <Input v-model="formValidate.userName" :disabled="useNameDisable" placeholder="请输入用户名" @on-blur="clickblur"  @on-focus="clickFocus"></Input>
      <div class="scollClass" v-if="scollshow">
         <Scroll height="120" :on-reach-bottom="handleReachBottom">
            <div  v-for="item in userNameList" :key="item.name" @mousedown="scollListClick(item)" class="scollListClass">
                {{ item.name }}
            </div>
         </Scroll>
      </div>
</FormItem>

 

Js:
  
  
  // 无限加载中的事件
    scollListClick(val){
      this.scollshow = false;
      this.formValidate = val;
      this.Formdata = val;
      this.formValidate.userName = val.name;
      // console.log(111)
      this.handleSelectAll(false);
    },
    clickFocus(){
      this.scollshow = true;
    },
    clickblur(){
       this.scollshow = false;
    },
    // 无限加载
    handleReachBottom () {
      return new Promise(resolve => {
          this.userpage = this.userpage*1 + 1;
          setTimeout(() => {
              this.$store.dispatch('getUserNameList',{
                page:this.userpage,
                size:'5'
              } ).then(res => {
                  if (res.data.code === 200 ) {
                      if(res.data.data.list.length > 0){
                        for(let i =0;i<res.data.data.list.length;i++){
                          this.userNameList.push(res.data.data.list[i])
                        }
                      }
                  } else {
                      // util.showMsg(this, {diy:'操作失败!'})
                  }
              })
              resolve();
          }, 500);
      });
    },

Css:

  

.scollClass{
  position:absolute;
  background:white;
  z-index:3;
  width:100%;
  overflow:hidden;
  border:1px solid #dddee1;
  border-radius: 4px;
  top:35px;
  ::-webkit-scrollbar
    {
      width: 6px;
      height: 16px;
      background-color: #F5F5F5;
    }
    
    /*定义滚动条轨道 内阴影+圆角*/
    ::-webkit-scrollbar-track
    {
        // -webkit-box-shadow: inset 0 0 6px #e9eaec;
        border-radius: 3px;
        background-color: #f5f7f9;
    }
    
    /*定义滑块 内阴影+圆角*/
    ::-webkit-scrollbar-thumb
    {
      border-radius: 3px;
      // -webkit-box-shadow: inset 0 0 6px #e9e9e9;
      background-color: #ccc;
    }
}
.scollListClass{
  height:24px;
  line-height:24px;
  // font-size:16px;
  margin-left:8px;
}

 

样式根据具体情况可以自行改动,进行进一步简单完善封装可以直接用

 

转载于:https://www.cnblogs.com/wy120/p/10892752.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 Vue 和 Element UI 来实现下拉框的二级联动。下面是一个简单的示例: 首先,在你的 Vue 组件中引入相关的库和组件: ```javascript <template> <div> <el-select v-model="selectedProvince" @change="handleProvinceChange"> <el-option v-for="province in provinces" :key="province" :label="province" :value="province"></el-option> </el-select> <el-select v-model="selectedCity"> <el-option v-for="city in cities" :key="city" :label="city" :value="city"></el-option> </el-select> </div> </template> <script> export default { data() { return { selectedProvince: '', selectedCity: '', provinces: ['省份1', '省份2', '省份3'], // 替换成你的省份数据 cities: { '省份1': ['城市1', '城市2', '城市3'], // 替换成你的城市数据 '省份2': ['城市4', '城市5', '城市6'], '省份3': ['城市7', '城市8', '城市9'] } }; }, methods: { handleProvinceChange() { this.selectedCity = ''; // 清空已选择的城市 } } }; </script> ``` 在上面的示例中,我们使用了两个 `el-select` 组件来展示省份和城市的下拉框。`provinces` 数组存储了所有的省份数据,`cities` 对象存储了每个省份对应的城市数据。当选择省份时,`handleProvinceChange` 方法会被调用,清空已选择的城市并更新城市下拉框的选项。 请注意,上述示例中的省份和城市数据都是静态的,你需要根据实际情况进行替换。你可以从后端或其他数据源中获取数据,并将其动态地传递给组件。 希望这个示例能帮助到你实现下拉框的二级联动!如有任何问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值