# rating开发指导
rating为评分条组件,表示用户使用感受的衡量标准条。具体用法请参考[rating](../reference/arkui-js/js-components-basic-rating.md)。
## 创建rating组件
在pages/index目录下的hml文件中创建一个rating组件。
```html
```
```css
/* xxx.css */
.container {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
background-color: #F1F3F5;
}
rating {
width: 80%;
height: 150px;
}
```
![zh-cn_image_0000001227701031](figures/zh-cn_image_0000001227701031.gif)
## 设置评分星级
rating组件通过设置numstars和rating属性设置评分条的星级总数和当前评星数。
```html
```
```css
/* xxx.css */
.container {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
background-color: #F1F3F5;
}
rating {
width: 80%;
height: 150px;
}
```
![zh-cn_image_0000001227422709](figures/zh-cn_image_0000001227422709.gif)
## 设置评分样式
rating组件通过star-background、star-foreground和star-secondary属性设置单个星级未选择、选中和选中的次级背景图片。
```html
```
```css
/* xxx.css */
.container {
width: 100%;
height: 100%;
flex-direction: column;
align-items: center;
justify-content: center;
background-color: #F1F3F5;
}
```
```js
// index.js
export default {
data: {
backstar: 'common/love.png',
secstar: 'common/love.png',
forestar: 'common/love1.png',
ratewidth: '400px',
rateheight: '150px'
},
onInit(){
}
}
```
![zh-cn_image_0000001178685854](figures/zh-cn_image_0000001178685854.gif)
> **说明:**
> - star-background、star-secondary、star-foreground属性的星级图源必须全部设置,否则默认的星级颜色为灰色,提示图源设置错误。
>
> - star-background、star-secondary、star-foreground属性只支持本地路径图片,图片格式为png和jpg。
## 绑定事件
向rating组件添加change事件,打印当前评分。
```html
```
```css
/* xxx.css */
.container {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
background-color: #F1F3F5;
}
rating {
width: 80%;
height: 150px;
}
```
```js
// xxx.js
import promptAction from '@ohos.promptAction';
export default {
showrating(e) {
promptAction.showToast({
message: '当前评分' + e.rating
})
}
}
```
![zh-cn_image_0000001181823160](figures/zh-cn_image_0000001181823160.gif)
## 场景示例
开发者可以通过改变开关状态切换星级背景图,通过改变滑动条的值调整星级总数。
```html
替换自定义图片
numstars {{stars}}
rating {{rate}}
```
```css
/* xxx.css */
.myrating:active {
width: 500px;
height: 100px;
}
switch{
font-size: 40px;
}
```
```js
// xxx.js
import promptAction from '@ohos.promptAction';
export default {
data: {
backstar: '',
secstar: '',
forestar: '',
stars: 5,
ratewidth: '300px',
rateheight: '60px',
step: 0.5,
rate: 0
},
onInit(){
},
setstar(e) {
if (e.checked == true) {
this.backstar = 'common/love.png'
this.secstar = 'common/love.png'
this.forestar = 'common/love1.png'
} else {
this.backstar = ''
this.secstar = ''
this.forestar = ''
}
},
setnumstars(e) {
this.stars = e.progress
this.ratewidth = 60 * parseInt(this.stars) + 'px'
},
setstep(e) {
this.step = e.progress
},
setrating(e){
this.rate = e.progress
},
showrating(e) {
promptAction.showToast({
message: '当前评分' + e.rating
})
}
}
```
![zh-cn_image_0000001224086459](figures/zh-cn_image_0000001224086459.gif)
## 相关实例
针对rating组件的开发,有以下相关实例可供参考:
- [rating组件的使用(JS)(API9)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/RatingApplication)