最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue.js 中制作自定義選擇組件的代碼附演示demo

 更新時(shí)間:2020年02月28日 09:54:32   作者:瘋狂的技術(shù)宅  
這篇文章主要介紹了Vue.js 中制作自定義選擇組件的代碼附演示demo,通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

 

定制 select 標(biāo)簽的設(shè)計(jì)非常困難。有時(shí)候,如果不使用樣式化的 div 和自定義 JavaScript 的結(jié)合來構(gòu)建自己的腳本,那是不可能的。在本文中,你將學(xué)習(xí)如何構(gòu)建使用完全自定義 CSS 設(shè)置樣式的 Vue.js 組件。

 

Demo: https://codesandbox.io/s/custom-vuejs-select-component-8nqgd

HTML

<template>
 <div
 class="custom-select"
  :tabindex="tabindex"
  @blur="open = false"
 >
  <div
  class="selected"
  :class="{open: open}"
  @click="open = !open"
 >
  {{ selected }}
 </div>
 <div
  class="items"
  :class="{selectHide: !open}"
 >
  <div
  class="item"
  v-for="(option, i) of options"
  :key="i"
  @click="selected=option; open=false; $emit('input', option)"
  >
  {{ option }}
  </div>
 </div>
 </div>
</template>

需要注意以下幾點(diǎn):

  • tabindex 屬性使我們的組件能夠得到焦點(diǎn),從而使它變得模糊。當(dāng)用戶在組件外部單擊時(shí), blur 事件將關(guān)閉我們的組件。
  • input 參數(shù)發(fā)出選定的選項(xiàng),父組件可以輕松地對(duì)更改做出反應(yīng)。

JavaScript

 <script>
 export default {
 props:{
  options:{
  type: Array,
  required: true
  },
  tabindex:{
  type: Number,
  required: false,
  default: 0
 }
 },
 data() {
 return {
  selected: this.options.length > 0 ? this.options[0] : null,
  open: false
 };
 },
 mounted(){
 this.$emit('input', this.selected);
 }
};
</script>

另外,要注意的重要事項(xiàng):

我們還會(huì)在 mount 上發(fā)出選定的值,以便父級(jí)不需要顯式設(shè)置默認(rèn)值。如果我們的 select 組件是較大表單的一部分,那么我們希望能夠設(shè)置正確的 tabindex 。

CSS

<style scoped>
 .custom-select {
 position: relative;
 width: 100%;
 text-align: left;
 outline: none;
 height: 47px;
 line-height: 47px;
}

.selected {
 background-color: #080D0E;
 border-radius: 6px;
 border: 1px solid #858586;
 color: #ffffff;
 padding-left: 8px;
 cursor: pointer;
 user-select: none;
}

.selected.open{
 border: 1px solid #CE9B2C;
 border-radius: 6px 6px 0px 0px;
}

.selected:after {
 position: absolute;
 content: "";
 top: 22px;
 right: 10px;
 width: 0;
 height: 0;
 border: 4px solid transparent;
 border-color: #fff transparent transparent transparent;
}

.items {
 color: #ffffff;
 border-radius: 0px 0px 6px 6px;
 overflow: hidden;
 border-right: 1px solid #CE9B2C;
 border-left: 1px solid #CE9B2C;
 border-bottom: 1px solid #CE9B2C;
 position: absolute;
 background-color: #080D0E;
 left: 0;
 right: 0;
}

.item{
 color: #ffffff;
 padding-left: 8px;
 cursor: pointer;
 user-select: none;
}

.item:hover{
 background-color: #B68A28;
}

.selectHide {
 display: none;
}
</style>

該 CSS只是一個(gè)示例,你可以按照你的需求隨意修改樣式。

我希望這可以幫助你創(chuàng)建自己的自定義選擇組件,以下是完整組件要點(diǎn)的鏈接:

最后,在線演示的示例:https://codesandbox.io/s/custom-vuejs-select-component-8nqgd

總結(jié)

到此這篇關(guān)于Vue.js 中制作自定義選擇組件的代碼附演示demo的文章就介紹到這了,更多相關(guān)vuejs自定義選擇組件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue參數(shù)的增刪改實(shí)例詳解

    Vue參數(shù)的增刪改實(shí)例詳解

    這篇文章主要為大家詳細(xì)介紹了Vue參數(shù)的增刪改實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 關(guān)于vue 項(xiàng)目中瀏覽器跨域的配置問題

    關(guān)于vue 項(xiàng)目中瀏覽器跨域的配置問題

    這篇文章主要介紹了vue 項(xiàng)目中瀏覽器跨域的配置問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 詳解Vue中$refs和$nextTick的使用方法

    詳解Vue中$refs和$nextTick的使用方法

    這篇文章主要為大家介紹了Vue中$refs和$nextTick的使用方法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Vue有一定幫助,需要的可以參考一下
    2022-03-03
  • 詳解VUE里子組件如何獲取父組件動(dòng)態(tài)變化的值

    詳解VUE里子組件如何獲取父組件動(dòng)態(tài)變化的值

    這篇文章主要介紹了詳解VUE里子組件如何獲取父組件動(dòng)態(tài)變化的值,子組件通過props獲取父組件傳過來的數(shù)據(jù),子組件存在操作傳過來的數(shù)據(jù)并且傳遞給父組件,需要的朋友可以參考下
    2018-12-12
  • Vue項(xiàng)目webpack打包部署到Tomcat刷新報(bào)404錯(cuò)誤問題的解決方案

    Vue項(xiàng)目webpack打包部署到Tomcat刷新報(bào)404錯(cuò)誤問題的解決方案

    今天很郁悶,遇到這樣一個(gè)奇葩問題,使用webpack打包vue后,將打包好的文件,發(fā)布到Tomcat上,訪問成功,但是刷新后頁(yè)面報(bào)404錯(cuò)誤,折騰半天才解決好,下面小編把Vue項(xiàng)目webpack打包部署到Tomcat刷新報(bào)404錯(cuò)誤問題的解決方案分享給大家,需要的朋友一起看看吧
    2018-05-05
  • el-select選擇器組件下拉框增加自定義按鈕的實(shí)現(xiàn)

    el-select選擇器組件下拉框增加自定義按鈕的實(shí)現(xiàn)

    本文主要介紹了el-select選擇器組件下拉框增加自定義按鈕的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • vue跳轉(zhuǎn)外部鏈接始終有l(wèi)ocalhost的問題

    vue跳轉(zhuǎn)外部鏈接始終有l(wèi)ocalhost的問題

    這篇文章主要介紹了vue跳轉(zhuǎn)外部鏈接始終有l(wèi)ocalhost的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Vue中Router路由兩種模式hash與history詳解

    Vue中Router路由兩種模式hash與history詳解

    這篇文章主要介紹了Vue中Router路由的兩種模式,分別對(duì)hash模式與history模式作了簡(jiǎn)要分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • 關(guān)于Vue源碼vm.$watch()內(nèi)部原理詳解

    關(guān)于Vue源碼vm.$watch()內(nèi)部原理詳解

    這篇文章主要介紹了關(guān)于Vue源碼vm.$watch()內(nèi)部原理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Vue項(xiàng)目如何部署到Tomcat服務(wù)器上

    Vue項(xiàng)目如何部署到Tomcat服務(wù)器上

    這篇文章主要介紹了Vue項(xiàng)目如何部署到Tomcat服務(wù)器上,Vue中自帶webpack,可以通過一行命令將項(xiàng)目打包,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-03-03

最新評(píng)論

长岭县| 林周县| 南安市| 清河县| 拉萨市| 会同县| 桃江县| 墨竹工卡县| 梨树县| 濮阳县| 姚安县| 临澧县| 贵州省| 无为县| 阿勒泰市| 福鼎市| 寿阳县| 化德县| 连江县| 尚志市| 呼图壁县| 仙游县| 青海省| 北辰区| 吴忠市| 集贤县| 稻城县| 娄烦县| 庄浪县| 曲周县| 萨嘎县| 勃利县| 昌乐县| 汶上县| 屏东县| 巩义市| 富蕴县| 合川市| 盐山县| 五华县| 化州市|