sencha touch 模仿tabpanel导航栏TabBar的实例代码


Posted in Javascript onOctober 24, 2013

基于sencha touch 2.2所写

代码:

/*
*模仿tabpanel导航栏
*/
Ext.define('ux.TabBar', {
    alternateClassName: 'tabBar',
    extend: 'Ext.Toolbar',
    xtype: 'tabBar',
    config: {
        docked: 'bottom',
        cls: 'navToolbar',
        layout: {
            align: 'stretch'
        },
        defaults: {
            flex: 1
        },
        //被选中的按钮
        selectButton: null
    },
    initialize: function () {
        var me = this;
        me.callParent();
        //监听按钮点击事件
        me.on({
            delegate: '> button',
            scope: me,
            tap: 'onButtonTap'
        });
    },
    //更新被选中按钮
    updateSelectButton: function (newItem, oldItem) {
        console.log(oldItem);
        if (oldItem) {
            oldItem.removeCls('x-tabBar-pressing');
        }
        if (newItem) {
            newItem.addCls('x-tabBar-pressing');
        }
    },
    //当按钮被点击时
    onButtonTap: function (button) {
        this.setSelectButton(button);
    },
    /**
    * @private 
    *执行添加项,调用add方法后自动执行
    */
    onItemAdd: function (item, index) {
        if (!this.getSelectButton() && item.getInitialConfig('selected')) {
            this.setSelectButton(item);
        }
        this.callParent(arguments);
    }
});

需要的css:

.navToolbar {
    padding:0;
}
.navToolbar .x-button {
    border:0;
    margin:0;
    border-right:1px solid #585B5B;
    border-radius:0;
    padding:0;
}
.navToolbar .x-button .x-button-label {
    font-weight:normal;
    color:White;
    font-size:0.6em;
}
.navToolbar .x-tabBar-pressing {
    background-image:none;
    background-color:#0f517e;
    background-image:-webkit-gradient(linear,50% 0%,50% 100%,color-stop(0%,#0a3351),color-stop(10%,#0c4267),color-stop(65%,#0f517e),color-stop(100%,#0f5280));
    background-image:-webkit-linear-gradient(top,#0a3351,#0c4267 10%,#0f517e 65%,#0f5280);
    background-image:-moz-linear-gradient(top,#0a3351,#0c4267 10%,#0f517e 65%,#0f5280);
    background-image:-o-linear-gradient(top,#0a3351,#0c4267 10%,#0f517e 65%,#0f5280);
    background-image:linear-gradient(top,#0a3351,#0c4267 10%,#0f517e 65%,#0f5280);
}

使用:

Ext.define('app.view.MyBar', {
    alternateClassName: 'myBar',
    extend: 'ux.TabBar',
    xtype: 'myBar',
    config: {
        items: [
        {
            xtype: 'button',
            text: '问卷调查',
            //只有第一个设置的属性有效
            selected: true
        },
        {
            xtype: 'button',
            text: '我的积分'
        },
        {
            xtype: 'button',
            text: '开奖大厅'
        },
        {
            xtype: 'button',
            text: '幸运号码'
        },
        {
            xtype: 'button',
            text: '更多'
        }]
    }
});

效果图:

sencha touch 模仿tabpanel导航栏TabBar的实例代码

Javascript 相关文章推荐
轻量级 JS ToolTip提示效果
Jul 20 Javascript
jQuery为iframe的body添加click事件的实现代码
Apr 07 Javascript
如何让DIV可编辑、可拖动示例代码
Sep 18 Javascript
javascript 事件处理示例分享
Dec 31 Javascript
JS交换变量的方法
Jan 21 Javascript
javascript结合fileReader 实现上传图片
Jan 30 Javascript
javascript url几种编码方式详解
Jun 06 Javascript
jQuery向父辈遍历的简单方法
Sep 18 Javascript
谈谈因Vue.js引发关于getter和setter的思考
Dec 02 Javascript
JS实现div模块的截图并下载功能
Oct 17 Javascript
vue树形结构获取键值的方法示例
Jun 21 Javascript
vue使用element-ui按需引入
May 20 Vue.js
jQuery设置div一直在页面顶部显示的方法
Oct 24 #Javascript
JS+CSS设置img在DIV中只显示Img垂直居中的部分
Oct 24 #Javascript
JS 获取滚动条高度示例代码
Oct 24 #Javascript
通过javascript把图片转化为字符画
Oct 24 #Javascript
js编写trim()函数及正则表达式的运用
Oct 24 #Javascript
原生JS实现加入收藏夹的代码
Oct 24 #Javascript
js实现浏览器的各种菜单命令比如打印、查看源文件等等
Oct 24 #Javascript
You might like
一个程序下载的管理程序(一)
2006/10/09 PHP
PHP中冒号、endif、endwhile、endfor使用介绍
2010/04/28 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
基于win2003虚拟机中apache服务器的访问
2017/08/01 PHP
php写app用的框架整理
2019/09/29 PHP
js获取div高度的代码
2008/08/09 Javascript
JavaScript 组件之旅(二)编码实现和算法
2009/10/28 Javascript
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
javascript中常用编程知识
2013/04/08 Javascript
自己使用jquery写的一个无缝滚动的插件
2014/04/30 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
2014/12/29 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
js生成随机数(指定范围)的实例代码
2016/07/10 Javascript
基于Marquee.js插件实现的跑马灯效果示例
2017/01/25 Javascript
Vue.js事件处理器与表单控件绑定详解
2017/03/20 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
es6系列教程_ Map详解以及常用api介绍
2017/09/25 Javascript
JS实现的数组去除重复数据算法小结
2017/11/17 Javascript
JavaScript文档加载模式以及元素获取
2020/07/28 Javascript
vue实现登录功能
2020/12/31 Vue.js
python实现对一个完整url进行分割的方法
2015/04/29 Python
Python中的hypot()方法使用简介
2015/05/18 Python
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
Python生成8位随机字符串的方法分析
2017/12/05 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
2020/03/20 Python
Python数据正态性检验实现过程
2020/04/18 Python
pytorch读取图像数据转成opencv格式实例
2020/06/02 Python
如何理解python对象
2020/06/21 Python
python 实现"神经衰弱"翻牌游戏
2020/11/09 Python
手把手教你用纯css3实现轮播图效果实例
2017/05/04 HTML / CSS
Ever New加拿大官网:彰显女性美
2018/10/05 全球购物
人民调解协议书范本
2014/10/11 职场文书
会计人员岗位职责
2015/02/03 职场文书
公司车辆维修管理制度
2015/08/05 职场文书
让人瞬间清醒的句子,句句经典,字字如金
2019/07/08 职场文书