温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Vue.js中怎么制作自定义选择组件

发布时间:2022-05-05 18:15:37 阅读:223 作者:zzz 栏目:大数据
Vue开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

本篇内容主要讲解“Vue.js中怎么制作自定义选择组件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue.js中怎么制作自定义选择组件”吧!

定制 select 标签的设计非常困难。有时候,如果不使用样式化的 div 和自定义 JavaScript 的结合来构建自己的脚本,那是不可能的。

Vue.js中怎么制作自定义选择组件 

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>

需要注意以下几点:

  • tabindex 属性使我们的组件能够得到焦点,从而使它变得模糊。当用户在组件外部单击时, blur 事件将关闭我们的组件。

  • input 参数发出选定的选项,父组件可以轻松地对更改做出反应。

JavaScript

 <script>
 export default {
 props:{
  options:{
  typeArray,
  requiredtrue
  },
  tabindex:{
  typeNumber,
  requiredfalse,
  default0
 }
 },
 data() {
 return {
  selectedthis.options.length > 0 ? this.options[0] : null,
  openfalse
 };
 },
 mounted(){
 this.$emit('input'this.selected);
 }
};
</script>

另外,要注意的重要事项:

我们还会在 mount 上发出选定的值,以便父级不需要显式设置默认值。如果我们的 select 组件是较大表单的一部分,那么我们希望能够设置正确的 tabindex 。

CSS

<style scoped>
 .custom-select {
 position: relative;
 width100%;
 text-align: left;
 outline: none;
 height47px;
 line-height47px;
}

.selected {
 background-color#080D0E;
 border-radius6px;
 border1px solid #858586;
 color#ffffff;
 padding-left8px;
 cursor: pointer;
 user-select: none;
}

.selected.open{
 border1px solid #CE9B2C;
 border-radius6px 6px 0px 0px;
}

.selected:after {
 position: absolute;
 content"";
 top22px;
 right10px;
 width0;
 height0;
 border4px solid transparent;
 border-color#fff transparent transparent transparent;
}

.items {
 color#ffffff;
 border-radius0px 0px 6px 6px;
 overflow: hidden;
 border-right1px solid #CE9B2C;
 border-left1px solid #CE9B2C;
 border-bottom1px solid #CE9B2C;
 position: absolute;
 background-color#080D0E;
 left0;
 right0;
}

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

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

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

该 CSS只是一个示例,你可以按照你的需求随意修改样式。

到此,相信大家对“Vue.js中怎么制作自定义选择组件”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://my.oschina.net/u/4279392/blog/4412389

AI

开发者交流群×