跳到正文

评分

星形或心形评分,支持半星、只读、清除、文字标签。交互版本是一组 radio,键盘与读屏都可用。

带行为 核心包 1 个事件 1 个方法

示例

在线试用 Markdown 版

代码

<div class="zh-rating" id="rt" data-value="3" data-label="服务评分" data-labels="很差,较差,一般,满意,很好"></div>
<div class="zh-rating" data-value="3.5" data-half data-show-value data-label="口味评分"></div>
<div class="zh-rating" data-readonly data-value="4.27" data-show-value data-label="综合评分"></div>

<script>
document.getElementById('rt').addEventListener('zh:rating', function (e) {
  console.log(e.detail.value);
});
</script>

属性

属性用在取值说明
data-value.zh-rating数字当前评分;只读时可以是小数(如 4.27),会按比例填充
data-count.zh-rating整数,默认 5总数
data-half.zh-rating布尔属性允许半星
data-readonly / data-disabled.zh-rating布尔属性只读展示 / 禁用
data-clear.zh-rating布尔属性再次点击同一个分数、或按 Delete / Backspace 清除评分
data-icon.zh-ratingstar(默认)| heart图标
data-labels.zh-rating逗号分隔的文字,如 很差,较差,一般,满意,很好每一档的文字,选中时显示在旁边
data-show-value.zh-rating布尔属性在旁边显示数字
data-label.zh-rating字符串无障碍名称,默认「评分」

事件

事件触发于detail说明
zh:rating.zh-rating{ value }评分变化时触发(冒泡)

方法

  • el.zhRating.get():读取当前评分

样式类

zh-rating

无障碍

  • 交互评分是 radiogroup,每个分值一个 radio,方向键切换,带「3 星 · 一般」形式的 aria-label
  • 只读评分是 role="img",读作「综合评分 4.3 分,满分 5 分」
  • 悬停时预览分数,移开后还原

常见问题

评分是什么?

星形或心形评分,支持半星、只读、清除、文字标签。交互版本是一组 radio,键盘与读屏都可用。

怎么使用评分?

先在页面里引入 zhaoui.css 和 zhaoui.js(放在 </body> 前,不加 defer),再照本页「用法」里的标记书写;需要用代码控制时,用「方法」里列出的接口。

评分有哪些事件?

zh:rating(评分变化时触发(冒泡))。

评分有哪些方法?

el.zhRating.get():读取当前评分。

评分支持键盘和读屏吗?

交互评分是 radiogroup,每个分值一个 radio,方向键切换,带「3 星 · 一般」形式的 aria-label;只读评分是 role="img",读作「综合评分 4.3 分,满分 5 分」;悬停时预览分数,移开后还原。

评分需要依赖框架吗?

不需要。ZhaoUI 是原生 HTML、CSS 和 JavaScript,不依赖 jQuery、Vue 或 React。