接下来几篇作文,会介绍用到的输入框系列,今天会介绍组普通的调用方式,因为RXEditor要求复杂的输入功能,后面的例子会用VUE的component动态调用,就没有今天的这么直观了,控件的实现原理都一样,只是调用方式的区别,今天的例子的调用代码为了写作文特殊制作的,写完作文还要恢复回去。
开关控件(Switch)的实现效果:

给组件取个好听的名字,叫RxSwitch吧。调用代码:

<RxSwitch
:onValue = "'on-value'"
:offValue = "'off-value'"
v-model = "inputValue"
> </RxSwitch>

组件代码:

<template>
<div class="rx-switch"
:class="onValue === inputValue? 'on' : ''"
@click="click">
</div>
</template> <script>
export default {
name: 'RxSwitch',
props:{
value:{ default:'' },
onValue:{ default:'on' },
offValue:{ default:'off' },
},
computed:{
inputValue: {
get:function() {
return this.value;
},
set:function(val) {
this.$emit('input', val);
},
},
},
methods: {
click(){
this.inputValue = this.inputValue === this.onValue
? this.offValue
: this.onValue
},
},
}
</script> <style>
.rx-switch{
position: relative;
width: 26px;
height: 14px;
background: #424242;
margin-top:4px;
border-radius:6px;
cursor: pointer;
} .rx-switch::after{
content: '';
position: absolute;
top:-1px;
left:-1px;
height: 16px;
width: 16px;
background: #e0e0e0;
border-radius: 50%;
box-shadow: 2px 2px 5px 0px rgba(0, 0, 0, 0.4);
} .rx-switch.on{
background: #75b325;
} .rx-switch.on::after{
content: '';
position: absolute;
top:-1px;
left:auto;
right: -1px;
height: 16px;
width: 16px;
background: #e0e0e0;
border-radius: 50%;
box-shadow: 2px 2px 5px 0px rgba(0, 0, 0, 0.4);
}
</style>

原理:鼠标点击时,切换v-model(inputValue)的值,模板根据inputValue的值确定是否显示on状态。

通过css伪类::after绘制开关上的触控点。具体可以参看CSS代码。

感谢耐心阅读,详细代码,请参考Github:https://github.com/vularsoft/studio-ui
若有有问题,请留言交流。

VUE实现Studio管理后台(九):开关(Switch)控件,输入框input系列的更多相关文章

  1. VUE实现Studio管理后台(二):Slot实现选项卡tab切换效果,可自由填装内容

    作为RXEditor的主界面,Studio UI要使用大量的选项卡TAB切换,我梦想的TAB切换是可以自由填充内容的.可惜自己不会实现,只好在网上搜索一下,就跟现在你做的一样,看看有没有好事者实现了类 ...

  2. VUE实现Studio管理后台(七):树形结构,文件树,节点树共用一套代码NodeTree

    本次介绍的内容,稍稍复杂了一点,用VUE实现树形结构.目前这个属性结构还没有编辑功能,仅仅是展示.明天再开一篇文章,介绍如何增加编辑功能,标题都想好了.先看今天的展示效果: 构建树必须用到递归,使用s ...

  3. VUE实现Studio管理后台(十):OptionBox,一个综合属性输入界面,可以级联重置

    为了便于阅读代码,已经把测试数据分离出来,放在了mock目录下: 阅读代码的话,稍微留意一下就好.本次介绍RXEditor界面最重要的部分,属性输入组件,该组件可以显示是否有数据被修改,还可以批量重置 ...

  4. VUE实现Studio管理后台(完结):标签式输入、名值对输入、对话框(modal dialog)

    一周的时间,几乎每天都要工作十几个小时,敲代码+写作文,界面原型算是完成了,下一步是写内核的HTML处理引擎,纯JS实现.本次实战展示告一段落,等RXEditor下一个版本完成,再继续分享吧.剩下的功 ...

  5. VUE实现Studio管理后台(一):鼠标拖放改变窗口大小

    近期改版RXEditor,把改版过程,用到的技术点,记录下来.昨天完成了静态页面的制作,制作过程并未详细记录,后期已经不愿再补了,有些遗憾.不过工作成果完整保留在github上,地址:https:// ...

  6. VUE实现Studio管理后台(三):支持多语言国际化(vue-i18n)

    RXEditor的第一版本是英文版,有些朋友看起来觉得不习惯,后来因为惰性,不愿意再修改旧代码加入中文版,这次提前就把这个问题解决了,克服惰性最好的方式,就是想到就尽快去做,避免拖延. 本来计划在界面 ...

  7. VUE实现Studio管理后台(十三):按钮点选输入控件,input输入框系列

    按钮点选输入,是一个非常简单的控件,20分钟就能完成的一个控件.先看效果: 根据以前的设定,通过json数据动态生成这两个按钮,示例中这两个按钮对应的json代码: { label:'标题', val ...

  8. Android Studio中Switch控件有关 textOn 和 textOff 用法

    •属性 textOn:控件打开时显示的文字 textOff:控件关闭时显示的文字 showText:设置是否显示开关上的文字(API 21及以上) •用法 <?xml version=" ...

  9. Switch控件详解

    Switch控件详解 原生效果 5.x 4.x 布局 <Switch android:id="@+id/setting_switch" android:layout_widt ...

随机推荐

  1. 吴裕雄--天生自然C语言开发:强制类型转换

    #include <stdio.h> int main() { , count = ; double mean; mean = (double) sum / count; printf(& ...

  2. 系统学习Javaweb7----JavaScript3

    学习内容: 1.JavaScript语法规则----全局函数 2.JavaScript语法规则----自定义函数 3.BOM对象 3.1BOM对象--消息框 3.2BOM对象--循环定时器 3.3BO ...

  3. LGOJ3975 TJOI2015 弦论

    link:TJOI2015 弦论 题目大意: 给定一个字符串,输出在对该字符串所有的非空子串排序后第\(k\)个 另外的一个限制是\(T\):子串本质相同但位置不同算\(1\)或多个 \(|s| \l ...

  4. 《运筹学基础及应用》习题1.1(b),1.1(c),1.2(a)

    用图解法求解下列线性规划问题,并指出问题具有惟一最优解,无穷多最优解,无界解还是无可行解. 习题1.1(b):$\max z=3x_1+2x_2$$$s.t\begin{cases}  2x_1+x_ ...

  5. Kali-tools

    title date tags layout Ubuntu Update Kali-Tools 2018-09-01 Linux post 创建shell文件 vim update-kali-sour ...

  6. LeetCode No.85,86,87

    No.85 MaximalRectangle 最大矩形 题目 给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积. 示例 输入: [ ["1", ...

  7. django框架基础-框架介绍-长期维护

    ###############    MVC架构介绍    ################ # MVC架构 # 一个软件框架有很多的模块,每一个模块有不同的功能 # 模块与模块之间相互配合来完成软件 ...

  8. Linux安装完后的调优(linux 6)

    1:关闭 SELinux 方法一:  #sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config #替换文本参数       ...

  9. Fault Domain深入分析

  10. SQL update 关联更改,内部需要引用表名

    select A.Id,A.Email,( select C.Email from [nopCommerce].[dbo].[Customer] C left join [nopCommerce].[ ...