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 写的个性导航菜单
Dec 24 Javascript
基于prototype扩展的JavaScript常用函数库
Nov 30 Javascript
Javascript遍历table中的元素示例代码
Jul 08 Javascript
jQuery中:checkbox选择器用法实例
Jan 03 Javascript
C#中使用迭代器处理等待任务
Jul 13 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
May 03 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
Dec 21 Javascript
EasyUI在Panel上动态添加LinkButton按钮
Aug 11 Javascript
webuploader分片上传的实现代码(前后端分离)
Sep 10 Javascript
深入理解Angularjs 脏值检测
Oct 12 Javascript
微信小程序下拉菜单效果的实例代码
May 14 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
Jun 10 jQuery
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
Ajax+PHP边学边练 之五 图片处理
2009/12/03 PHP
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
2013/06/14 PHP
PHP json_encode中文乱码问题的解决办法
2013/09/09 PHP
CI框架装载器Loader.php源码分析
2014/11/04 PHP
PHP实现简易blog的制作
2016/10/24 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
微信公众平台开发教程②微信端分享功能图文详解
2019/04/10 PHP
PHP实现腾讯短网址生成api接口实例
2020/12/08 PHP
Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
2010/09/12 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
JQuery 传送中文乱码问题的简单解决办法
2016/05/24 Javascript
原生JS实现图片翻书效果
2017/02/16 Javascript
vue中的scope使用详解
2017/10/29 Javascript
实例讲解javascript实现异步图片上传方法
2017/12/05 Javascript
jQuery实现判断上传图片类型和大小的方法示例
2018/04/11 jQuery
ES6小技巧之代替lodash
2019/06/07 Javascript
python绘图库Matplotlib的安装
2014/07/03 Python
Python Web框架Tornado运行和部署
2020/10/19 Python
详解Python各大聊天系统的屏蔽脏话功能原理
2016/12/01 Python
Python机器学习之K-Means聚类实现详解
2018/02/22 Python
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
Django 后台带有字典的列表数据与页面js交互实例
2020/04/03 Python
哪些是python中web开发框架
2020/06/17 Python
Python 实现PS滤镜中的径向模糊特效
2020/12/03 Python
python使用scapy模块实现ping扫描的过程详解
2021/01/21 Python
分享一个H5原生form表单的checkbox特效代码
2018/02/26 HTML / CSS
德国机车企业:FC-Moto
2017/10/27 全球购物
美国价格实惠的在线眼镜网站:Zeelool
2020/12/25 全球购物
护理专业个人求职简历的自我评价
2013/10/13 职场文书
管理专员自荐信
2014/01/26 职场文书
英文自荐信常用句子
2014/03/26 职场文书
活动经费申请报告
2015/05/15 职场文书
年会主持人开场白台词
2015/05/29 职场文书
赢在中国观后感
2015/06/02 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书