当前位置: 首页 > news >正文

dns 国外网站日照网络推广

dns 国外网站,日照网络推广,广州软件公司排名,如何把网站放到空间别人可以访问前言 近期产品需求&#xff1a;Vue2移动端项目需要在switch开关内显示文字&#xff0c;看Vantui没有对应功能&#xff0c;因此自己手撸写了这个组件。 一、最终效果 二、参数配置 1、代码示例&#xff1a; <t-switch v-model"check"/>2、配置参数&#xff08;…

前言

近期产品需求:Vue2移动端项目需要在switch开关内显示文字,看Vantui没有对应功能,因此自己手撸写了这个组件。

一、最终效果

在这里插入图片描述

二、参数配置

1、代码示例:

 <t-switch v-model="check"/>

2、配置参数(t-switch Attributes)

参数说明类型默认值
v-model绑定值boolean / string / number
disabled是否禁用booleanfalse
widthswitch 的宽度(像素)number55
active-icon-classswitch 打开时所显示图标的类名,设置此项会忽略 active-textstring
inactive-icon-classswitch 关闭时所显示图标的类名,设置此项会忽略 inactive-textstring
active-textswitch 打开时的文字描述string
inactive-textswitch 关闭时的文字描述string
active-valueswitch 打开时的值boolean / string / numbertrue
inactive-valueswitch 关闭时的值boolean / string / numberfalse
active-colorswitch 打开时的背景色string#2b73bb
inactive-colorswitch 关闭时的背景色string#ccc
nameswitch 对应的 name 属性string

3、events 事件

事件名称说明回调参数
changeswitch 状态发生变化时的回调函数新状态的值

三、源码

<template><divclass="t-switch":class="{ 'is-disabled': switchDisabled, 'is-checked': checked }"role="switch":aria-checked="checked":aria-disabled="switchDisabled"@click.prevent="switchValue"><inputclass="t-switch__input"type="checkbox"@change="handleChange"ref="input":id="id":name="name":true-value="activeValue":false-value="inactiveValue":disabled="switchDisabled"@keydown.enter="switchValue"/><span:class="['t-switch__label', 't-switch__label--left', !checked ? 'is-active' : '']"v-if="inactiveIconClass || inactiveText"><i :class="[inactiveIconClass]" v-if="inactiveIconClass"></i><span v-if="!inactiveIconClass && inactiveText" :aria-hidden="checked">{{ inactiveText }}</span></span><span class="t-switch__core" ref="core" :style="{ 'width': coreWidth + 'px' }"></span><span:class="['t-switch__label', 't-switch__label--right', checked ? 'is-active' : '']"v-if="activeIconClass || activeText"><i :class="[activeIconClass]" v-if="activeIconClass"></i><span v-if="!activeIconClass && activeText" :aria-hidden="!checked">{{ activeText }}</span></span></div>
</template>
<script>export default {name: 'TSwitch',props: {value: {type: [Boolean, String, Number],default: false},disabled: {type: Boolean,default: false},width: {type: Number,default: 55},activeIconClass: {type: String,default: ''},inactiveIconClass: {type: String,default: ''},activeText: String,inactiveText: String,activeColor: {type: String,default: '#2b73bb'},inactiveColor: {type: String,default: '#ccc'},activeValue: {type: [Boolean, String, Number],default: true},inactiveValue: {type: [Boolean, String, Number],default: false},name: {type: String,default: ''},id: String},data() {return {coreWidth: this.width};},created() {if (!~[this.activeValue, this.inactiveValue].indexOf(this.value)) {this.$emit('input', this.inactiveValue);}},computed: {checked() {return this.value === this.activeValue;},switchDisabled() {return this.disabled}},watch: {checked() {this.$refs.input.checked = this.checked;if (this.activeColor || this.inactiveColor) {this.setBackgroundColor();}}},methods: {handleChange(event) {const val = this.checked ? this.inactiveValue : this.activeValue;this.$emit('input', val);this.$emit('change', val);this.$nextTick(() => {if (this.$refs.input) {this.$refs.input.checked = this.checked;}});},setBackgroundColor() {let newColor = this.checked ? this.activeColor : this.inactiveColor;this.$refs.core.style.borderColor = newColor;this.$refs.core.style.backgroundColor = newColor;},switchValue() {!this.switchDisabled && this.handleChange();}},mounted() {/* istanbul ignore if */this.coreWidth = this.width || 40;if (this.activeColor || this.inactiveColor) {this.setBackgroundColor();}this.$refs.input.checked = this.checked;this.$refs['input'].focus()}
};
</script>
<style lang="scss" scoped>
.t-switch {display: -webkit-inline-box;display: -ms-inline-flexbox;display: inline-flex;-webkit-box-align: center;-ms-flex-align: center;align-items: center;position: relative;font-size: 14px;height: 22px;vertical-align: middle;&.is-disabled {opacity: 0.6;.t-switch__core,.t-switch__label {cursor: not-allowed;}}&.is-checked {.t-switch__core {&::after {left: 100%;margin-left: -19px;}}}.label-fade-enter,.label-fade-leave-active {opacity: 0;}.t-switch__label {margin: 0;position: absolute;display: none;color: #fff;&.is-active {display: inline-block;color: #fff;}* {line-height: 1;font-size: 14px;display: inline-block;}}.t-switch__label--left {right: 5px;z-index: 9;}.t-switch__label--right {left: 5px;z-index: 9;}.t-switch__input {position: absolute;width: 0;height: 0;opacity: 0;margin: 0;}.t-switch__core {margin: 0;position: relative;width: 40px;height: 22px;border: 1px solid #dcdfe6;outline: 0;border-radius: 10px;-webkit-box-sizing: border-box;box-sizing: border-box;background: #dcdfe6;-webkit-transition: border-color 0.3s, background-color 0.3s;transition: border-color 0.3s, background-color 0.3s;&:after {content: "";position: absolute;top: 1px;left: 1px;border-radius: 100%;-webkit-transition: all 0.3s;transition: all 0.3s;width: 18px;height: 18px;background-color: #fff;}}
}
</style>

相关文章

基于ElementUi再次封装基础组件文档


基于ant-design-vue再次封装基础组件文档


vue3+ts基于Element-plus再次封装基础组件文档

http://www.wangmingla.cn/news/150509.html

相关文章:

  • 做网站的论坛长春网站开发
  • 烟台做网站免费的seo教程
  • 网站运营改进的点百度惠生活怎么做推广
  • 手把手教你网上开店成都网站排名 生客seo
  • 建网站必需服务器吗自己接单的平台
  • 简述网站建设及维护的全过程舆情网站直接打开
  • 宣传视频怎么做吸引人seo站长查询
  • 蛋糕网站建设方案网站快速排名推广软件
  • 哈尔滨网站建设工作室长沙市云网站建设
  • 广西壮族自治区工商行政管理局天津seo网站排名优化公司
  • 可以做照片书的网站德州seo优化
  • 某网站建设策划方案培训机构连锁加盟
  • 政府网站建设先进个人材料南沙seo培训
  • 专业网站的建设最近三天的新闻大事摘抄
  • 个性化网站建设开发广州网站设计专注乐云seo
  • 动漫设计与制作专业的学校有哪些优化设计五年级下册语文答案
  • 北京做网站哪家强新产品推广策划方案
  • 京东网站建设目的沈阳专业seo排名优化公司
  • 广州营销网站建设公司百度快照投诉中心
  • 在线编辑图片的网站有哪些西藏自治区seo 标题 关键词优化
  • 广告传媒有限公司简介深圳百度关键字优化
  • 专业网站制作公司案例抖音seo关键词排名技术
  • 网站流量分析工具想学管理方面的培训班
  • 免费的站内推广方式有哪些西安seo推广公司
  • 东莞建设监督网站天津seo网络营销
  • 宁波网站建设设计图百度投诉电话24小时
  • 网站网页切换怎么做的网络营销推广的方法有哪些
  • 自己做的网址危险网站百度竞价排名是哪种方式
  • 重庆永川网站建设价格四川旅游seo整站优化站优化
  • 在网站让照片滚动怎么做百度热议排名软件