博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ext 6.5.3 classic版本,自定义实现togglefield开关控件
阅读量:6956 次
发布时间:2019-06-27

本文共 1851 字,大约阅读时间需要 6 分钟。

1,在Ext 6.5.3的classic版中没有提供开关控件,参照modern版中 togglefield开关的实现,继承滑动器(sliderfield),自定义一个开关按钮。支持value绑定和点击切换状态以及表单提交。

2,完成后效果如图:

 

3, js代码如下:

//基于滑动器自定义开关控件, by xxxExt.define('ux.slider.Toggle', {    extend: 'Ext.slider.Single',    alias: 'widget.uxSliderToggle',    cls: 'ux-uxSliderToggle',    openedCls: 'ux-uxSliderToggle-toggled',    //不需要切换动画,效果更好    animate: false,    //关闭点击滚动轴切换功能(轴上存在一定盲区,此时判断点击位置不够,值不会发生变化),统一改为点击事件切换    clickToChange: false,    minValue: 0,    maxValue: 1,    width: 50,    initComponent: function () {        var me = this;        me.callParent();        me.on({            'change': {                fn: me.onChange            },            el: {                'click': {                    fn: me.onElClick,                    scope: me                }            }        });        if (me.getValue()) {            me.addCls(me.openedCls);        }    },    onChange: function () {        var me = this;        me.toggleCls(me.openedCls);    },    onElClick: function () {        //对值进行切换        var me = this,            currentValue = me.getValue(),            minValue = me.minValue,            maxValue = me.maxValue,            toggleValue = currentValue == minValue ? maxValue : minValue;        me.setValue(toggleValue);
      //触发值的双向绑定
      me.publishValue();
}});

 4,相关scss,content直接使用适用中文可能会产生乱码,可以改成中文对应的Unicode

//开关.ux-uxSliderToggle {
.x-slider-horz { &:before { top: auto; margin: 0; height: 20px; content: '关'; padding-left: 25px; padding-top: 1px; } } .x-slider:before {
border-radius: 8px; } .x-slider-thumb {
border-radius: 5px; }}.ux-uxSliderToggle-toggled {
.x-slider-horz { &:before { content: '开'; padding-left: 10px; background: green; color: #fff; } }}

 

转载于:https://www.cnblogs.com/yipinGG-8/p/10045890.html

你可能感兴趣的文章
Selenium WebDriver控制操作(Python)
查看>>
最短路 - spfa
查看>>
java 一些容易忽视的小点-类和对象
查看>>
weblogic安装升级配置
查看>>
在Spring MVC中使用FileUpload功能
查看>>
[转] Windows Server 2012 Beta (Hyper-V 3.0) VM Replica與Live Migration Winout Shared Storage
查看>>
枚举 enum
查看>>
JavaScript 学习笔记
查看>>
C# 文件读写系列三
查看>>
让Android的输入框与文本框带滚动条ScrollView
查看>>
基于jQuery或Zepto实现实时监控用户浏览信息
查看>>
【高德地图API】如何打造十月妈咪品牌地图?
查看>>
laravel Ajax请求 X-CSRF验证问题
查看>>
deb包的安装及dpkg命令小结
查看>>
网站程序 Bin目录下 dll无法删除,删除并编译后自动重新引用的解决方法
查看>>
git配置
查看>>
centos7下mongoDB安装和配置
查看>>
强化学习——从最简单的开始入手
查看>>
KVC 与 KVO 理解
查看>>
Python 学习第一周
查看>>