ExtJS 4.2 评分组件
上一文章是扩展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
ExtJS 4.2 评分组件的更多相关文章
- ExtJS 4.2 Grid组件的单元格合并
ExtJS 4.2 Grid组件本身并没有提供单元格合并功能,需要自己实现这个功能. 目录 1. 原理 2. 多列合并 3. 代码与在线演示 1. 原理 1.1 HTML代码分析 首先创建一个Grid ...
- 干货之运用CALayer创建星级评分组件(五角星)
本篇记录星级评分组件的创建过程以及CALayer的运用. 为了实现一个星级评分的组件,使用了CALayer,涉及到mask.CGPathRef.UIBezierPath.动画和一个计算多角星关键节点的 ...
- Angular 星级评分组件
一.需求演变及描述: 1. 有一个“客户对公司的总体评价”的字段(evalutation).字段为枚举类型,0-5,对应关系为:0-暂无评价,1-很差,2-差,3-一般,4-好,5-很好 2. 后来需 ...
- JS原生评分组件
JS原生评分组件 <html> <head> <meta http-equiv="Content-Type" content="text/h ...
- EXTJS 4 树形表格组件使用演示样例
EXTJS 4 树形表格组件使用演示样例 一.总体效果图 version=1&modificationDate=1412058826000&api=v2" alt=" ...
- Full-featured Vue 评分组件
分享一下最近写的 vue 的评分组件 Features: 支持半星.可清除.文案展示.只读.自定义颜色.自定义字符及图片等.支持 hover 的时候改变 value.内置三种样式,以及非常好看 DEM ...
- 【CSS】329- 非常强!3行核心css代码的rate评分组件
像rate评分组件一般都用javascript写,所以这次将是一个全新的尝试,用css实现一个rate评分 ❗ 核心代码也就三行? 01 效果图 02 原理 主要是借助radio单选框,梳理如下: 去 ...
- react 实现评分组件
写了个评分组件,效果如下 组件Rate.js import React, { Component } from 'react' import './Rate.less' export default ...
- 原生JS结合cookie实现商品评分组件
开发思路如下: 1.利用JS直接操作DOM的方式开发商品评分组件,主要实现功能有:显示评价评分的样式以及将用户操作后对应的数据返回到主页面 2.主页面引入商品评分组件的js文件并根据规定格式的数据,生 ...
随机推荐
- wepack+sass+vue 入门教程(二)
六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...
- 【原】FMDB源码阅读(三)
[原]FMDB源码阅读(三) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 FMDB比较优秀的地方就在于对多线程的处理.所以这一篇主要是研究FMDB的多线程处理的实现.而 ...
- C语言 · 整数平均值
编写函数,求包含n个元素的整数数组中元素的平均值.要求在函数内部使用指针操纵数组元素,其中n个整数从键盘输入,输出为其平均值. 样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以 ...
- hadoop 2.7.3本地环境运行官方wordcount
hadoop 2.7.3本地环境运行官方wordcount 基本环境: 系统:win7 虚机环境:virtualBox 虚机:centos 7 hadoop版本:2.7.3 本次先以独立模式(本地模式 ...
- WPF样式之画刷结合样式
第一种画刷,渐变画刷GradientBrush (拿线性渐变画刷LinearGradientBrush(其实它涵盖在GradientBrush画刷内.现在拿他来说事.),还有一个圆心渐变画刷Radia ...
- 微服务与Docker介绍
什么是微服务 微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源.这是因为它们通过扩展组件来处理功能瓶颈问题.这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个 ...
- maven 中snapshot版本和release版本的区别
maven中的仓库分为两种,snapshot快照仓库和release发布仓库.snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本.定义一个组件/模 ...
- PHP设计模式(三)抽象工厂模式(Abstract Factory For PHP)
一.什么是抽象工厂模式 抽象工厂模式的用意为:给客户端提供一个接口,可以创建多个产品族中的产品对象 ,而且使用抽象工厂模式还要满足以下条件: 系统中有多个产品族,而系统一次只可能消费其中一族产品. 同 ...
- Android中Activity运行时屏幕方向与显示方式详解
现在我们的手机一般都内置有方向感应器,手机屏幕会根据所处位置自动进行横竖屏切换(前提是未锁定屏幕方向).但有时我们的应用程序仅限在横屏或者竖屏状态下才可以运行,此时我们需要锁定该程序Activity运 ...
- 在将 varchar 值 'xinpian' 转换成数据类型 int 时失败?
把int类型的值修改为varchar类型的值