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 相关文章推荐
javascript 词法作用域和闭包分析说明
Aug 12 Javascript
ExtJS4 Grid改变单元格背景颜色及Column render学习
Feb 06 Javascript
jquery的flexigrid无法显示数据提示获取到数据
Jul 19 Javascript
jquery eval解析JSON中的注意点介绍
Aug 23 Javascript
JS实现点击链接取消跳转效果的方法
Jan 24 Javascript
jquery实现仿新浪微博带动画效果弹出层代码(可关闭、可拖动)
Oct 12 Javascript
谈一谈jQuery核心架构设计
Mar 28 Javascript
javascript实现简单计算器效果【推荐】
Apr 19 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
Aug 07 Javascript
详解vue-cli脚手架中webpack配置方法
Aug 22 Javascript
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
Jun 17 Javascript
解决vue+elementui项目打包后样式变化问题
Aug 03 Javascript
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
PHP实现搜索相似图片
2015/09/22 PHP
PHP生成加减算法方式的验证码实例
2018/03/12 PHP
php curl批处理实现可控并发异步操作示例
2018/05/09 PHP
JavaScript的面向对象方法以及差别
2008/03/31 Javascript
JQuery优缺点分析说明
2010/06/09 Javascript
删除select中所有option选项jquery代码
2013/08/12 Javascript
javascript对话框使用方法(警告框 javascript确认框 提示框)
2014/01/07 Javascript
jquery ajax,ashx,json的用法总结
2014/02/12 Javascript
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
jQuery过滤选择器用法分析
2015/02/10 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
JS实现全屏的四种写法
2016/12/30 Javascript
jquery基于layui实现二级联动下拉选择(省份城市选择)
2017/06/20 jQuery
vue2.0项目中使用Ueditor富文本编辑器示例代码
2017/08/14 Javascript
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
element el-input directive数字进行控制
2018/10/11 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
2020/08/21 Javascript
JS基于ES6新特性async await进行异步处理操作示例
2019/02/02 Javascript
使用vue-router切换页面时实现设置过渡动画
2019/10/31 Javascript
vue实现两个区域滚动条同步滚动
2020/12/13 Vue.js
[01:10]DOTA2次级职业联赛 - Fly战队宣传片
2014/12/01 DOTA
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
Python的__builtin__模块中的一些要点知识
2015/05/02 Python
通过python改变图片特定区域的颜色详解
2019/07/15 Python
Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例
2019/10/14 Python
python生成并处理uuid的实现方式
2020/03/03 Python
Django实现任意文件上传(最简单的方法)
2020/06/03 Python
python-图片流传输的思路及示例(url转换二维码)
2020/12/21 Python
CSS3颜色值RGBA与渐变色使用介绍
2020/03/06 HTML / CSS
KIKO MILANO荷兰网上商店:意大利专业化妆品品牌
2017/05/12 全球购物
开水果连锁店创业计划书
2013/12/29 职场文书
黄河的主人教学反思
2014/02/07 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
Python time库的时间时钟处理
2021/05/02 Python
spring 项目实现限流方法示例
2022/07/15 Java/Android