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 相关文章推荐
jquery BS,dialog控件自适应大小
Jul 06 Javascript
jquery 插件学习(二)
Aug 06 Javascript
Jquery实现弹出层分享微博插件具备动画效果
Apr 03 Javascript
JavaScript简单实现网页回到顶部功能
Nov 12 Javascript
在父页面得到zTree已选中的节点的方法
Feb 12 Javascript
JQuery中DOM实现事件移除的方法
Jun 13 Javascript
JavaScript类型系统之基本数据类型与包装类型
Jan 06 Javascript
jquery ztree异步搜索(搜叶子)实践
Feb 25 Javascript
使用vue2.0创建的项目的步骤方法
Sep 25 Javascript
jQuery实现侧边栏隐藏与显示的方法详解
Dec 22 jQuery
详解JavaScript中的Object.is()与"==="运算符总结
Jun 17 Javascript
vue-quill-editor插入图片路径太长问题解决方法
Jan 08 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
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
用C/C++扩展你的PHP 为你的php增加功能
2012/09/06 PHP
php使用ob_start()实现图片存入变量的方法
2014/11/14 PHP
php连接odbc数据源并保存与查询数据的方法
2014/12/24 PHP
简单实现php上传文件功能
2017/09/21 PHP
php微信开发之图片回复功能
2018/06/14 PHP
返回页面顶部top按钮通过锚点实现(自写)
2013/08/30 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
浅谈javascript实现八大排序
2015/04/27 Javascript
JS实现两表格里数据来回转移的方法
2015/05/28 Javascript
对JavaScript客户端应用编程的一些建议
2015/06/24 Javascript
Angularjs实现带查找筛选功能的select下拉框示例代码
2016/10/04 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
微信小程序开发的四十个技术窍门总结(推荐)
2017/01/23 Javascript
基于webpack-hot-middleware热加载相关错误的解决方法
2018/02/22 Javascript
Vue.js更改调试地址端口号的实例
2018/09/19 Javascript
详解Angular Forms中自定义ngModel绑定值的方式
2018/12/10 Javascript
node解析修改nginx配置文件操作实例分析
2019/11/06 Javascript
只有 20 行的 JavaScript 模板引擎实例详解
2020/05/11 Javascript
vue3.0中setup使用(两种用法)
2020/12/02 Vue.js
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
Python遍历目录的4种方法实例介绍
2015/04/13 Python
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
python try except 捕获所有异常的实例
2018/10/18 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
python如何安装下载后的模块
2020/07/03 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
2020/12/07 Python
Pandas之缺失数据的实现
2021/01/06 Python
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
公关活动策划方案
2014/05/25 职场文书
2015年超市工作总结
2015/04/09 职场文书
Vue组件更新数据v-model不生效的解决
2022/04/02 Vue.js
Win11更新失败并提示0xc1900101
2022/04/19 数码科技
GTX1660显卡搭配显示器推荐
2022/04/19 数码科技