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一点特殊用法
May 28 Javascript
JQuery对表单元素的基本操作使用总结
Jul 18 Javascript
jquery引用方法时传递参数原理分析
Oct 13 Javascript
推荐4个原生javascript常用的函数
Jan 12 Javascript
使用window.prompt()实现弹出用户输入的对话框
Apr 13 Javascript
每日十条JavaScript经验技巧(二)
Jun 23 Javascript
概述VUE2.0不可忽视的很多变化
Sep 25 Javascript
详解vue父子模版嵌套案例
Mar 04 Javascript
JavaScript数据结构中栈的应用之表达式求值问题详解
Apr 11 Javascript
Node.js 实现简单的接口服务器的实例代码
May 23 Javascript
vue element table 表格请求后台排序的方法
Sep 28 Javascript
小程序调用微信支付的方法
Sep 26 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(6) 面向对象
2010/02/16 PHP
MySQL 日期时间函数常用总结
2012/06/12 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
2015/01/20 PHP
php实现用手机关闭计算机(电脑)的方法
2015/04/22 PHP
Windows服务器中PHP如何安装redis扩展
2019/09/27 PHP
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
让网页跳转到指定位置的jquery代码非书签
2013/09/06 Javascript
webapp框架AngularUI的demo改造之路
2014/12/21 Javascript
JavaScript中数组去除重复的三种方法
2016/04/22 Javascript
JS表格组件神器bootstrap table详解(强化版)
2016/05/26 Javascript
解决bootstrap导航栏navbar在IE8上存在缺陷的方法
2016/07/01 Javascript
jQuery中的一些小技巧
2017/01/18 Javascript
基于JavaScript实现弹幕特效
2020/08/27 Javascript
JavaScript实现简单评论功能
2017/08/17 Javascript
利用babel将es6语法转es5的简单示例
2017/12/01 Javascript
浅谈 vue 中的 watcher
2017/12/04 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
vue车牌号校验和银行校验实战
2019/01/23 Javascript
简单学习5种处理Vue.js异常的方法
2019/06/17 Javascript
JS实现页面跳转与刷新的方法汇总
2019/08/30 Javascript
Python学习资料
2007/02/08 Python
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
Windows和Linux下Python输出彩色文字的方法教程
2017/05/02 Python
Python中单、双下划线的区别总结
2017/12/01 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
Python Pandas找到缺失值的位置方法
2018/04/12 Python
浅谈python日志的配置文件路径问题
2018/04/28 Python
Python操作Sql Server 2008数据库的方法详解
2018/05/17 Python
python sorted函数原理解析及练习
2020/02/10 Python
css3 border-radius属性详解
2017/07/05 HTML / CSS
酒店管理求职信范文
2014/04/06 职场文书
教师竞聘演讲稿
2014/05/16 职场文书
年检委托书
2014/08/30 职场文书
幼儿教师自我剖析材料
2014/09/29 职场文书
销售代理协议书
2014/09/30 职场文书
Spring Boot配合PageHelper优化大表查询数据分页
2022/04/20 Java/Android