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的cookie插件
Apr 07 Javascript
AlertBox 弹出层信息提示框效果实现步骤
Oct 11 Javascript
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
Feb 27 Javascript
深入document.write()与HTML4.01的非成对标签的详解
May 08 Javascript
扩展JS Date对象时间格式化功能的小例子
Dec 02 Javascript
jquery操作cookie插件分享
Jan 14 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
Aug 10 Javascript
AngularJS指令与控制器之间的交互功能示例
Dec 14 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
May 09 Javascript
JavaScript实现打印星型金字塔功能实例分析
Sep 27 Javascript
vue自动化路由的实现代码
Sep 30 Javascript
vue实现图书管理系统
Dec 29 Vue.js
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将会员数据导入到ucenter的代码
2010/07/18 PHP
PHP与SQL注入攻击防范小技巧
2011/09/16 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
2012/07/01 PHP
PHP添加Xdebug扩展的方法
2014/02/12 PHP
2017年最好用的9个php开发工具推荐(超好用)
2017/10/23 PHP
js 实现菜单左右滚动显示示例介绍
2013/11/21 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
2016/05/30 Javascript
jquery判断input值不为空的方法
2016/06/05 Javascript
js实现图片淡入淡出切换简易效果
2016/08/22 Javascript
浅谈Node.js 沙箱环境
2018/05/15 Javascript
js+html5 canvas实现ps钢笔抠图
2019/04/28 Javascript
3分钟了解vue数据劫持的原理实现
2019/05/01 Javascript
React中使用外部样式的3种方式(小结)
2019/05/28 Javascript
用Vue.js方法创建模板并使用多个模板合成
2019/06/28 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
python time模块用法实例详解
2014/09/11 Python
Python实现类似jQuery使用中的链式调用的示例
2016/06/16 Python
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
2019/07/03 Python
Django文件存储 自己定制存储系统解析
2019/08/02 Python
PyQt5多线程防卡死和多窗口用法的实现
2020/09/15 Python
html5画布旋转效果示例
2014/01/27 HTML / CSS
印尼披萨外送专家:Domino’s Pizza印尼
2017/12/28 全球购物
Maison Lab荷兰:名牌Outlet购物
2018/08/10 全球购物
C++面试题:关于链表和指针
2013/06/05 面试题
音乐专业自荐信
2014/02/07 职场文书
视光学毕业生自荐书范文
2014/02/13 职场文书
外语系大学生自荐信范文
2014/03/01 职场文书
党员群众路线教育实践活动剖析材料
2014/10/10 职场文书
毕业生见习报告总结
2014/11/08 职场文书
碧霞祠导游词
2015/02/09 职场文书
教师自荐信范文
2015/03/06 职场文书
开学第一天的感想
2015/08/10 职场文书
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android