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延时重复执行函数 lLoopRun.js
Jun 29 Javascript
jQuery 1.3 和 Validation 验证插件1.5.1
Jul 09 Javascript
用Javascript评估用户输入密码的强度实现代码
Nov 30 Javascript
js 时间函数应用加、减、比较、格式转换的示例代码
Aug 23 Javascript
利用jquery实现瀑布流3种案例
Sep 18 Javascript
详解vue 模版组件的三种用法
Jul 21 Javascript
LayUI表格批量删除方法
Aug 15 Javascript
vue 修改 data 数据问题并实时显示的方法
Aug 27 Javascript
记一次vue去除#问题处理经过小结
Jan 24 Javascript
js+html实现周岁年龄计算器
Jun 25 Javascript
VUE 实现动态给对象增加属性,并触发视图更新操作示例
Nov 29 Javascript
基于ajax实现上传图片代码示例解析
Dec 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
2019年中国咖啡业现状与发展趋势
2021/03/04 咖啡文化
PHP foreach循环使用详解与实例代码
2010/05/08 PHP
一道求$b相对于$a的相对路径的php代码
2010/08/08 PHP
php不使用插件导出excel的简单方法
2014/03/04 PHP
php实现的DateDiff和DateAdd时间函数代码分享
2014/08/16 PHP
php中使用gd库实现下载网页中所有图片
2015/05/12 PHP
学习php设计模式 php实现装饰器模式(decorator)
2015/12/07 PHP
php如何执行非缓冲查询API
2016/07/22 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
详谈 Jquery Ajax异步处理Json数据.
2011/09/09 Javascript
由Javascript实现的页面日历
2011/11/04 Javascript
用js一次改变多个input的readonly属性值的方法
2014/06/11 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
2015/11/17 Javascript
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
ionic2懒加载配置详解
2017/09/01 Javascript
Vue代码分割懒加载的实现方法
2017/11/23 Javascript
使用JS获取SessionStorage的值
2018/01/12 Javascript
用webAPI实现图片放大镜效果
2020/11/23 Javascript
[01:04:09]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第二场 2月2日
2021/03/11 DOTA
python清除字符串里非字母字符的方法
2015/07/02 Python
Ubuntu下安装PyV8
2016/03/13 Python
深入理解python对json的操作总结
2017/01/05 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
Anaconda下安装mysql-python的包实例
2018/06/11 Python
python中的&&及||的实现示例
2019/08/07 Python
python的faker库用法
2019/11/28 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
2021/03/04 Python
泰国汽车、火车和轮渡票预订网站:Bus Online Ticket
2017/09/09 全球购物
Lands’ End英国官方网站:高质量男女服装
2017/10/07 全球购物
企业文化演讲稿
2014/05/20 职场文书
《迟到》教学反思
2016/02/24 职场文书
Java 在生活中的 10 大应用
2021/11/02 Java/Android
VUE使用draggable实现组件拖拽
2022/04/06 Vue.js