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 相关文章推荐
Jquery 组合form元素为json格式,asp.net反序列化
Jul 09 Javascript
javascript中的继承实例代码
Apr 27 Javascript
jquery实现checkbox 全选/全不选的通用写法
Feb 22 Javascript
jQuery中:not选择器用法实例
Dec 30 Javascript
javascript制作的cookie封装及使用指南
Jan 02 Javascript
原生js实现ajax方法(超简单)
Sep 20 Javascript
vue 中filter的多种用法
Apr 26 Javascript
如何在Angular应用中创建包含组件方法示例
Mar 23 Javascript
使用vue-cli3新建一个项目并写好基本配置(推荐)
Apr 24 Javascript
使用vue自定义指令开发表单验证插件validate.js
May 23 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
Sep 21 Javascript
原生js实现移动小球(碰撞检测)
Dec 17 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
浅析PHP绘图技术
2013/07/03 PHP
php发送邮件的问题详解
2015/06/22 PHP
jQuery 树形结构的选择器
2010/02/15 Javascript
JavaScript CSS修改学习第二章 样式
2010/02/19 Javascript
js select常用操作控制代码
2010/03/16 Javascript
jquery+php随机生成红包金额数量代码分享
2015/08/27 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
2016/05/18 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
JavaScript数据类型转换的注意事项
2016/07/31 Javascript
JSON 必知必会 观后记
2016/10/27 Javascript
bootstrap实现的自适应页面简单应用示例
2017/03/09 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
vue-router实现组件间的跳转(参数传递)
2017/11/07 Javascript
react-router browserHistory刷新页面404问题解决方法
2017/12/29 Javascript
python在多玩图片上下载妹子图的实现代码
2013/08/13 Python
Python实现队列的方法
2015/05/26 Python
Scrapy-redis爬虫分布式爬取的分析和实现
2017/02/07 Python
Python利用splinter实现浏览器自动化操作方法
2018/05/11 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
对Django url的几种使用方式详解
2019/08/06 Python
python线程信号量semaphore使用解析
2019/11/30 Python
浅谈Python中的模块
2020/06/10 Python
Spring http服务远程调用实现过程解析
2020/06/11 Python
python的数学算法函数及公式用法
2020/11/18 Python
使用CSS3配合IE滤镜实现渐变和投影的效果
2015/09/06 HTML / CSS
大学自我鉴定
2013/12/20 职场文书
安康杯竞赛活动总结
2014/05/05 职场文书
技术经济专业求职信
2014/09/03 职场文书
2014年镇党建工作汇报材料
2014/11/02 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书
MySQL官方导出工具mysqlpump的使用
2021/05/21 MySQL
Python实战之大鱼吃小鱼游戏的实现
2022/04/01 Python
Java 超详细讲解数据结构中的堆的应用
2022/04/02 Java/Android