上一文章是扩展ExtJS自带的Date组件。在这里将创建一个评分组件。

目录

1. 介绍

2. 示例

3. 资源下载

1. 介绍

代码参考的是 Sencha Touch 2上的一个RatingStar扩展插件,在此基础上做了移植到ExtJS 4.2,并扩展了默认值、form表单支持等功能。

1.1 JavaScript代码

/*!
* 评分组件
*/
Ext.define('App.Demo.RatingStarFiledDemoTab', {
extend: 'Ext.panel.Panel',
layout: 'fit',
closable: true,
reload: function () {
},
initComponent: function () {
var me = this; // panel渲染后
me.on('afterrender', function () { });
var _container = AkExtJS.extjs.createPanel({
layout: 'vbox',
items: [
Ext.create('Ext.form.Display', {
width: '100%',
value: '<h1>评分组件</h1>' +
'<p>文章地址:<a href="http://www.cnblogs.com/polk6/p/5965570.html" target="_blank">http://www.cnblogs.com/polk6/p/5965570.html</a></p>' +
'<p>此处为创建一个新的组件:评分组件</p>'
}),
Ext.create('Js.ux.RatingStarField', {
name: 'speedScore',
fieldLabel: '发货速度',
labelWidth: 60,
width: 220,
}),
Ext.create('Js.ux.RatingStarField', {
name: 'serviceScore',
fieldLabel: '服务态度',
labelWidth: 60,
width: 220,
}),
Ext.create('Js.ux.RatingStarField', {
name: 'desScore',
fieldLabel: '描述相符',
labelWidth: 60,
width: 220,
value:3
}),
Ext.create('Ext.button.Button', {
text: '设置【发货速度】为5星',
handler: function (thisControl, event) {
_container.down('[name=speedScore]').setValue(5);
}
}),
Ext.create('Ext.button.Button', {
text: '取值',
handler: function (thisControl, event) {
var txt = '发货速度:' + _container.down('[name=speedScore]').getValue() + '<br/>' +
'服务态度:' + _container.down('[name=serviceScore]').getValue() + '<br/>' +
'描述相符:' + _container.down('[name=desScore]').getValue() + '<br/>';
Ext.Msg.alert('系统提示', txt);
}
}),
]
}); Ext.applyIf(me, {
items: [_container]
});
me.callParent(arguments);
}
});

1.2 Css样式

.x-rating{min-height:25px;}
.x-rating .x-component-outer{position: relative; padding:0.6em;min-height: 40px;}
.x-rating .starContainer, .x-rating .starFakeContainer{position:absolute; top:0px;left:0px; width:100%; height:100%; }
.x-rating .starFakeContainer{z-index:10;}
.x-rating .starContainer{display:-webkit-box; -webkit-box-align:center;-webkit-box-pack:center;}
.x-rating .starContainer .center, .x-rating .starContainer .left, .x-rating .starContainer .right{-webkit-box-flex:1}
.x-rating .star{border:0px !important;padding:0px !important;margin:0px 0px 0px -12.5px !important;position:absolute; left:16.66%; -webkit-mask:url(/images/star.png) left center no-repeat; -webkit-mask-size:25px 25px; background-color:#ff0000; width:25px; height:25px; opacity:.2; -webkit-transform: scale(1,1);}
.x-rating .star2{left:33.33%;}
.x-rating .star3{left:49.99%;}
.x-rating .star4{left:66.66%;}
.x-rating .star5{left:83.33%;}
.x-rating .star.active{-webkit-transform: scale(1,1); opacity:1;}

1.3 图标

  

1.4 成员

名称 类型 说明
value 属性 初始化时指定星数,数值范围0~5。默认为0。
setValue(value) 方法 设置评分组件的数值,数值范围0~5。
getValue() 方法 获取评分组件的数值。

2. 示例

2.1 运行图

2.2 代码

Ext.create('Js.ux.RatingStarField', {
fieldLabel: '发货速度',
labelWidth: 60,
width: 220,
}),
Ext.create('Js.ux.RatingStarField', {
fieldLabel: '服务态度',
labelWidth: 60,
width: 220,
}),
Ext.create('Js.ux.RatingStarField', {
fieldLabel: '描述相符',
labelWidth: 60,
width: 220,
value:3
})

  

3. 资源下载

3.1 Demo下载

地址ExtJS4.2_RatingStarDemo.zip

3.2 在线示例

地址http://www.akmsg.com/ExtJS/index.html#App.Demo.RatingStarFiledDemoTab

End
菜单加载中...

ExtJS 4.2 评分组件的更多相关文章

  1. ExtJS 4.2 Grid组件的单元格合并

    ExtJS 4.2 Grid组件本身并没有提供单元格合并功能,需要自己实现这个功能. 目录 1. 原理 2. 多列合并 3. 代码与在线演示 1. 原理 1.1 HTML代码分析 首先创建一个Grid ...

  2. 干货之运用CALayer创建星级评分组件(五角星)

    本篇记录星级评分组件的创建过程以及CALayer的运用. 为了实现一个星级评分的组件,使用了CALayer,涉及到mask.CGPathRef.UIBezierPath.动画和一个计算多角星关键节点的 ...

  3. Angular 星级评分组件

    一.需求演变及描述: 1. 有一个“客户对公司的总体评价”的字段(evalutation).字段为枚举类型,0-5,对应关系为:0-暂无评价,1-很差,2-差,3-一般,4-好,5-很好 2. 后来需 ...

  4. JS原生评分组件

    JS原生评分组件 <html> <head> <meta http-equiv="Content-Type" content="text/h ...

  5. EXTJS 4 树形表格组件使用演示样例

    EXTJS 4 树形表格组件使用演示样例 一.总体效果图 version=1&modificationDate=1412058826000&api=v2" alt=" ...

  6. Full-featured Vue 评分组件

    分享一下最近写的 vue 的评分组件 Features: 支持半星.可清除.文案展示.只读.自定义颜色.自定义字符及图片等.支持 hover 的时候改变 value.内置三种样式,以及非常好看 DEM ...

  7. 【CSS】329- 非常强!3行核心css代码的rate评分组件

    像rate评分组件一般都用javascript写,所以这次将是一个全新的尝试,用css实现一个rate评分 ❗ 核心代码也就三行? 01 效果图 02 原理 主要是借助radio单选框,梳理如下: 去 ...

  8. react 实现评分组件

    写了个评分组件,效果如下 组件Rate.js import React, { Component } from 'react' import './Rate.less' export default ...

  9. 原生JS结合cookie实现商品评分组件

    开发思路如下: 1.利用JS直接操作DOM的方式开发商品评分组件,主要实现功能有:显示评价评分的样式以及将用户操作后对应的数据返回到主页面 2.主页面引入商品评分组件的js文件并根据规定格式的数据,生 ...

随机推荐

  1. 如何避免git每次提交都输入密码

    在ubuntu系统中,如何避免git每次提交都输入用户名和密码?操作步聚如下:1: cd 回车: 进入当前用户目录下:2: vim .git-credentials (如果没有安装vim 用其它编辑器 ...

  2. History API与浏览器历史堆栈管理

    移动端开发在某些场景中有着特殊需求,如为了提高用户体验和加快响应速度,常常在部分工程采用SPA架构.传统的单页应用基于url的hash值进行路由,这种实现不存在兼容性问题,但是缺点也有--针对不支持o ...

  3. 从国内流程管理软件市场份额看中国BPM行业发展

    随着互联网+.中国制造2025.工业4.0等国家战略的支持与引导,企业在数字经济时代的信息化表现惊人,越来越多企业认识到,对于企业的发展来说,信息自动化远远还不够,企业的战略.业务和IT之间需保持高度 ...

  4. Atitit.项目修改补丁打包工具 使用说明

    Atitit.项目修改补丁打包工具 使用说明 1.1. 打包工具已经在群里面.打包工具.bat1 1.2. 使用方法:放在项目主目录下,执行即可1 1.3. 打包工具的原理以及要打包的项目列表1 1. ...

  5. MySQL:常见使用问题

    内容 1.Linux 上安装 MySQL 2.单机上安装多实例 3.不知root密码情况下,修改root密码 1.Linux 上安装MySQL 安装步骤: 1)解压 tar.gz文件 -linux-g ...

  6. (转载) Linux IO模式及 select、poll、epoll详解

    注:本文是对众多博客的学习和总结,可能存在理解错误.请带着怀疑的眼光,同时如果有错误希望能指出. 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案 ...

  7. 最近在玩linux时 yum 遇到了问题

    主要是软件源出现了问题 我做的方式可能比较粗暴 ls -l /etc/yum.repos.d/       /*查看软件源*/ rm -rf /etc/yum.repos.d/   /*全删了*/ m ...

  8. github中的watch、star、fork的作用

    [转自:http://www.jianshu.com/p/6c366b53ea41] 在每个 github 项目的右上角,都有三个按钮,分别是 watch.star.fork,但是有些刚开始使用 gi ...

  9. [转]ThinkPHP中实例化对象M()和D()的区别,select和find的区别

    1.ThinkPHP中实例化对象M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会 ...

  10. 用apt-file解决找不到头文件的问题

    在编译C语言的开源项目的时候,经常会出现头文件找不到的问题. 解决这类问题有一个特别好用的工具apt-file 1.在ubuntu下安装 sudo apt install apt-file 2.更新索 ...