欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

antd多選下拉框一行展示的實現(xiàn)方式

 更新時間:2020年10月31日 09:27:39   作者:風火一回  
這篇文章主要介紹了antd多選下拉框一行展示的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

我們都知道antd的select多選時,如果下拉框?qū)挾炔蛔悖瑒t自動浮動到下一行將下拉框撐大,但是這回影響到頁面的整體布局。

我們期望的效果是,下拉框只顯示一行的值,超出一行的部分自動隱藏。

下面有2種方案來實現(xiàn)這個效果。

1.利用浮動原理

設置下拉框的最大高度為一行的高度,然后超出的部分隱藏。

 .ant-select-selection--multiple {
      max-height: 32px;
      overflow: hidden;
 }

這種方式存在的弊端是如果有2個選項,一個很短一個很長,那么只能看到很短的值,長值被隱藏,會剩余很大的空白。

2.flex布局

將下拉框選項放到一行顯示,如果超出了下拉框長度則隱藏。默認的選項是采用float浮動顯示的,所以我們要屏蔽掉浮動效果。

 .ant-select-selection--multiple .ant-select-selection__rendered {
      overflow: hidden;
    }
    .ant-select-selection--multiple .ant-select-selection__rendered ul {
      display: flex;
      flex-wrap: nowrap;
      overflow: hidden;
      float: left;
    }
    .ant-select-selection--multiple .ant-select-selection__choice {
      float: none;
      overflow: visible;
    }
    .ant-select-selection--multiple .ant-select-search--inline {
      float: none;
      position: absolute;
    }
    .ant-select-selection--multiple {
      max-height: 32px;
      overflow: hidden;
    }

這里重寫了下拉選項的樣式,達到了目的,但是會存在另一個問題,因為下拉選項排成了不換行的一列,那么必須指定下拉框的長度為固定值,不能使用百分比,因為一旦選中的下拉值超出了屏幕寬度,那么他會自動撐大整個屏幕的寬度。

補充知識:antd design Menu菜單下拉回調(diào)以及下拉列表時只能顯示一個列表,其余關閉

我做的是一個顯示全國省市區(qū)的下拉列表:如下圖

這個下拉列表是三層嵌套的下拉列表,統(tǒng)計列表不能同時打開,一次只能點開一個。點擊下拉時觸發(fā)函數(shù)獲得下一層級的下拉數(shù)據(jù)。

代碼如下:

render(){
let city=this.state.cityList.map(itemss=>(
       <SubMenu
         key={itemss.id}
         title={<span ><Icon type="team" /><span className="nav-text">{itemss.name}</span></span>}
         onTitleClick={this.getCountryList.bind(this,itemss.id,itemss.name)}
       >
         {
           this.state.countryList.map(citem=>(
            <Menu.Item key={citem.id}> <span onClick={this.checkedItem.bind(this,citem.id,citem.name)} >{citem.name}</span></Menu.Item>
           ))
         }
       </SubMenu>

     ));
    const { startValue, endValue, endOpen } = this.state;
    return(
      <div className="div-body">
        <div className="div-page">
          <div className="div_query ">
            <Layout>
                <div className="" />
              <Sider
                collapsed={this.state.collapsed}
                style={{backgroundColor:'#FFFFFF'}}
                className=""
                onCollapse={this.onCollapse}
                openKeys={this.state.openKeys}--->根據(jù)this.state.openKeys的值去對應SubMenu的key值 從而展開此列表。
              >
                 <Menu theme="" mode={this.state.mode}
                    defaultSelectedKeys={['6']}
                    openKeys={this.state.openKeys}
                 >
                  <SubMenu
                    key="全國"
                    title={<span><Icon type="user" /><span className="nav-text">全國</span></span>}
                    onTitleClick={this.getProvinceList}
                  >
                    {
                      this.state.provinceList.map((items,i)=>

                         <SubMenu
                          key={items.id}
                          title={<span ><Icon type="team" /><span className="nav-text">{items.name}</span></span>}
                          onTitleClick={this.getCity.bind(this,items.id,items.name,0)}--->onTitleClick---》點擊觸發(fā)回調(diào)函數(shù)
                         >
                           {city}
                        </SubMenu>
                      )
                    }
                  </SubMenu>
                </Menu>
              </Sider>
              )

   getProvinceList=()=>{
    const result=fetch('/web/chargeTrend/getChargePrinceList.htm'
      ,{method:'GET',
        credentials:'include',
      }).then((res)=>{
      return res.json();
    }).then((data)=>{
      //var ds=eval('('+data+')');
      console.log('ds',data);
      if(data.length>0)
      {
        if(this.state.openKeys[0]==="全國")
        {
          this.setState({
            provinceList: data,
            openKeys:[],
          },()=>{
            console.log('privince',this.state.provinceList);
          })
        }else{
          var arrs=["全國"];
          this.setState({
            provinceList: data,
            openKeys:arrs,
          },()=>{
            console.log('privince',this.state.provinceList);
          })
        }


      }
    });
  }
  getCity=(parentid,name)=>{
    var arr=this.state.openKeys;

    const result=fetch('/web/chargeTrend/getChargeCityList.htm?parentid='+parentid,
      {method:'GET',
        credentials:'include',
      }).then((res)=>{
      return res.json();
    }).then((data)=>{
      console.log('city',data);
      if(data.length>0)
      {
        if(parentid===this.state.openKeys[1])
        {
          var arrs=["全國"];
          this.setState({
            cityList:data,
            adCode:parentid,
            sRange:name,
            openKeys:arrs,
          },()=>{
            console.log('cityList',this.state.cityList);
            console.log('city1',this.state.openKeys);
          });
        }else{
          var arrs=["全國"];
          arrs.push(parentid);
          this.setState({
            cityList:data,
            adCode:parentid,
            sRange:name,
            openKeys:arrs,
          },()=>{
            console.log('cityList',this.state.cityList);
            console.log('city1',this.state.openKeys);
          });
        }

      }
    });
  }
  getCountryList=(parentid,name)=>{
    var arr=this.state.openKeys;
    const result=fetch('/web/chargeTrend/getCountyList.htm?parentid='+parentid,
      {method:'GET',
        credentials:'include',
      }).then((res)=>{
      return res.json();
    }).then((data)=>{
      console.log('country',data);
      if(data.length>0)
      {
        if(this.state.openKeys.length>=3)
        {
          if(parentid===this.state.openKeys[2])
          {
            var arrs=["全國"];
            arrs.push(arr[1]);
            this.setState({
              countryList:data,
              adCode:parentid,
              sRange:name,
              openKeys:arrs,
            },()=>{
              console.log('Country1',this.state.openKeys)
            });
          }else{
            var arrs=["全國"];
            arrs.push(arr[1]);
            arrs.push(parentid);
            this.setState({
              countryList:data,
              adCode:parentid,
              sRange:name,
              openKeys:arrs,
            },()=>{
              console.log('Country2',this.state.openKeys)
            });
          }
        }else{
          arr.push(parentid);
          this.setState({
            countryList:data,
            adCode:parentid,
            sRange:name,
            openKeys:arr,
          },()=>{
            console.log('Country3',this.state.openKeys)
          });
        }


      }
    });
  }
} 

以上這篇antd多選下拉框一行展示的實現(xiàn)方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • vue-cli與webpack處理靜態(tài)資源的方法及webpack打包的坑

    vue-cli與webpack處理靜態(tài)資源的方法及webpack打包的坑

    這篇文章主要介紹了vue-cli與webpack處理靜態(tài)資源的方法,需要的朋友可以參考下
    2018-05-05
  • Vue中的循環(huán)遍歷與key值原理解讀

    Vue中的循環(huán)遍歷與key值原理解讀

    這篇文章主要介紹了Vue中的循環(huán)遍歷與key值原理,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 快速解決Error: error:0308010C:digital envelope routines::unsupported的三種解決方案

    快速解決Error: error:0308010C:digital envelope ro

    因為 node.js V17版本中最近發(fā)布的OpenSSL3.0, 而OpenSSL3.0對允許算法和密鑰大小增加了嚴格的限制,下面通過本文給大家分享快速解決Error: error:0308010C:digital envelope routines::unsupported的三種解決方案,感興趣的朋友一起看看吧
    2024-02-02
  • Vue中使用Swiper簡單封裝組件示例

    Vue中使用Swiper簡單封裝組件示例

    這篇文章主要為大家介紹了Vue中使用Swiper簡單封裝組件示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • vue如何使用js對圖片進行點擊標注圓點并記錄它的坐標

    vue如何使用js對圖片進行點擊標注圓點并記錄它的坐標

    這篇文章主要介紹了vue如何使用js對圖片進行點擊標注圓點并記錄它的坐標,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Element-ui?DatePicker日期選擇器基礎用法示例

    Element-ui?DatePicker日期選擇器基礎用法示例

    這篇文章主要為大家介紹了Element-ui?DatePicker日期選擇器基礎用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • vue監(jiān)聽input標簽的value值方法

    vue監(jiān)聽input標簽的value值方法

    今天小編就為大家分享一篇vue監(jiān)聽input標簽的value值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • 淺談vue中resetFields()使用注意事項

    淺談vue中resetFields()使用注意事項

    這篇文章主要介紹了淺談vue中resetFields()使用注意事項,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Vue中使用Lodop插件實現(xiàn)打印功能的簡單方法

    Vue中使用Lodop插件實現(xiàn)打印功能的簡單方法

    這篇文章主要給大家介紹了關于Vue中使用Lodop插件實現(xiàn)打印功能的簡單方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Vue具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-12-12
  • Vue中使一個div鋪滿全屏的實現(xiàn)

    Vue中使一個div鋪滿全屏的實現(xiàn)

    最近在項目開發(fā)中,就遇到了這個問題,Vue中如何使一個div鋪滿全屏,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-07-07

最新評論