vue自定义switch开关组件,实现样式可自行更改


Posted in Javascript onNovember 01, 2019

用法:

import switchc from './public/switch'
<switchc v-model="value1" text="on|off"></switchc>

属性

text 非必填,类型为string,要求格式为“on|off” ,以 | 分隔

事件

change

html部分:

<template>
 <div>
   <span class="weui-switch" :class="{'weui-switch-on' : isChecked}" :value="value" @click="toggle" style="position:relative">
  <div v-if="isChecked && direction.length > 0" style="width:100%;height:100%;position:absolute;padding:0 5px;line-height:20px;color:#FFF;user-select:none">
  {{direction[0]}}
  </div>
  <div v-if="!isChecked && direction.length > 0" style="width:100%;height:100%;position:absolute;padding:0 5px;right:2px;line-height:22px;color:#7A7A7A;text-align:right;user-select:none">
  {{direction[1]}}
  </div>
   </span>
 </div>
</template>

js部分:

<script>
 export default {
 name: 'switchComponent',
 props: {
    value: {
     type: Boolean,
     default: true
    },
    text: {
    type: String,
    default: ''
    }
   },
 data () {
  return {
  isChecked: this.value
  }
 },
 computed: {
  direction () {
  if (this.text) {
   return this.text.split('|')
  } else {
   return []
  }
  }
 },
 watch: {
     value (val) {
      this.isChecked = val
     },
    isChecked(val) {
     this.$emit('change', val);
    }
   },
   methods: {
    toggle() {
     this.isChecked = !this.isChecked;
    }
   }
 } 
</script>

style部分:

<style>
 .weui-switch {
   display: block;
   position: relative;
   width: 52px;
   height: 24px;
   border: 1px solid #DFDFDF;
   outline: 0;
   border-radius: 16px;
   box-sizing: border-box;
   background-color: #DFDFDF;
   transition: background-color 0.1s, border 0.1s;
   cursor: pointer;
  }
  .weui-switch:before {
   content: " ";
   position: absolute;
   top: 0;
   left: 0;
   width: 50px;
   height: 22px;
   border-radius: 15px;
   background-color: #FDFDFD;
   transition: transform 0.35s cubic-bezier(0.45, 1, 0.4, 1);
  }
  .weui-switch:after {
   content: " ";
   position: absolute;
   top: 0;
   left: 0;
   width: 22px;
   height: 22px;
   border-radius: 15px;
   background-color: #FFFFFF;
   box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
   transition: transform 0.35s cubic-bezier(0.4, 0.4, 0.25, 1.35);
  }
  .weui-switch-on {
   border-color: #6F6F6F;
   background-color: #1AAD19;
  }
  .weui-switch-on:before {
   border-color: #1AAD19;
   background-color: #409eff;
  }
  .weui-switch-on:after {
   transform: translateX(28px);
  }
</style>

以上这篇vue自定义switch开关组件,实现样式可自行更改就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript下查找父节点的简单方法
Aug 13 Javascript
深入理解JavaScript系列(16) 闭包(Closures)
Apr 12 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
Jan 09 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
Apr 23 Javascript
java、javascript实现附件下载示例
Aug 14 Javascript
jQuery获得包含margin的outerWidth和outerHeight的方法
Mar 25 Javascript
JS本地刷新返回上一页代码
Jul 25 Javascript
详解Angular中$cacheFactory缓存的使用
Aug 19 Javascript
JS实现获取毫秒值及转换成年月日时分秒的方法
Aug 15 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
May 23 Javascript
JS定义函数的几种常用方法小结
May 23 Javascript
新手快速入门JavaScript装饰者模式与AOP
Jun 24 Javascript
Vue实现导航栏的显示开关控制
Nov 01 #Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
Nov 01 #Javascript
vue设置导航栏、侧边栏为公共页面的例子
Nov 01 #Javascript
Vue中jsx不完全应用指南小结
Nov 01 #Javascript
vue导航栏部分的动态渲染实例
Nov 01 #Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
Nov 01 #Javascript
Vue-cli项目部署到Nginx服务器的方法
Nov 01 #Javascript
You might like
迅雷下载《中学科技》怀旧期刊下载
2021/02/27 无线电
php使用curl访问https示例分享
2014/01/17 PHP
php版微信自动获取收货地址api用法示例
2016/09/22 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
用JQuery调用Session的实现代码
2010/10/29 Javascript
node.js 一个简单的页面输出实现代码
2012/03/07 Javascript
JS定时器实例
2013/04/17 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
2014/08/03 NodeJs
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
jquery马赛克拼接翻转效果代码分享
2015/08/24 Javascript
jQuery采用连缀写法实现的折叠菜单效果
2015/09/18 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
2016/01/25 Javascript
JavaScript数组操作函数汇总
2016/08/05 Javascript
JS实现的文件拖拽上传功能示例
2018/05/21 Javascript
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
Python实现螺旋矩阵的填充算法示例
2017/12/28 Python
Python数据预处理之数据规范化(归一化)示例
2019/01/08 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
2019/05/13 Python
python3 pygame实现接小球游戏
2019/05/14 Python
python 中如何获取列表的索引
2019/07/02 Python
Python中logging日志记录到文件及自动分割的操作代码
2020/08/05 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
医学专业大学生求职的自我评价
2013/11/27 职场文书
女大学生个人求职信
2013/12/09 职场文书
七年级数学教学反思
2014/01/22 职场文书
愚人节活动策划方案
2014/03/11 职场文书
《苏珊的帽子》教学反思
2014/04/07 职场文书
质量保证书
2015/01/17 职场文书
西安导游词
2015/02/12 职场文书
2015年女工委工作总结
2015/07/27 职场文书
《你在为谁工作》心得体会(共8篇)
2016/01/20 职场文书
会计专业自荐信范文
2019/05/22 职场文书
原来实习报告是这样写的呀!
2019/07/03 职场文书
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang