vue 星星评分组件
显示评分和打分组件,可现实半颗星星效果
效果图:

| 参数名 | 类型 | 说明 |
|---|---|---|
| score | Number | 分数 ,默认0,保留一位小数 |
| disabled | Boolean | 是否只读,默认false,鼠标点击可以打分 |
| showText | Boolean | 是否显示分数,默认false |
<!--评分-->
<template>
<div class="rate" :class="{'disabled':disabled}">
<i v-for="i in 5" class="iconfont" @mouseenter="disabled?'':curScore=i" @mouseleave="disabled?'':curScore=''" @click="disabled?'':setScore(i)" :class="getClass(i)">
<i v-if="disabled&&i==Math.floor(score)+1" class="iconfont icon-star" :style="'width:'+width"></i>
</i>
<span v-if="showText" class="text">{{curScore||score}}分</span>
</div>
</template>
<script>
export default {
name:'MyRate',
props: {
score: {
type: Number,
default: 0,
//required: true
},
disabled: {
type: Boolean,
default: false,
},
showText: {
type: Boolean,
default: false,
},
},
data() {
return {
curScore: '',
width:'',
}
},
created: function () {
this.getDecimal();
},
methods: {
getClass(i) {
if (this.curScore === '') {
return i <= this.score ? 'icon-star' : 'icon-star-o'
} else {
return i <= this.curScore ? 'icon-star' : 'icon-star-o'
}
},
getDecimal() {
this.width=Number(this.score * 100 - Math.floor(this.score) * 100)+'%';
},
setScore(i){
this.$emit('update:score',i);//使用`.sync`修饰符,对score 进行“双向绑定
}
}
}
</script>
//页面中调用
只读,不显示数字:<my-rate :score="1.5" disabled/>
只读,显示数字:<my-rate :score="3.6" disabled showText/>
鼠标点击评分,显示数字:<my-rate :score.sync="curScore" showText/>
<button @click="submit">提交</button>
//submit(){alert(this.curScore);} 提交显示分数
vue 星星评分组件的更多相关文章
- vue星级评分组件
<template> <div class="Rating-gray"> <i v-for="(item,index) in itemCla ...
- Full-featured Vue 评分组件
分享一下最近写的 vue 的评分组件 Features: 支持半星.可清除.文案展示.只读.自定义颜色.自定义字符及图片等.支持 hover 的时候改变 value.内置三种样式,以及非常好看 DEM ...
- vue2.0:(九)、外卖App弹窗部分星星评分
本篇是星星评分部分,先上代码: 1.header.vue: <template> <transition name="fade"> & ...
- 干货之运用CALayer创建星级评分组件(五角星)
本篇记录星级评分组件的创建过程以及CALayer的运用. 为了实现一个星级评分的组件,使用了CALayer,涉及到mask.CGPathRef.UIBezierPath.动画和一个计算多角星关键节点的 ...
- vue.js之组件(上篇)
本文的Demo和源代码已放到GitHub,如果您觉得本篇内容不错,请点个赞,或在GitHub上加个星星! https://github.com/zwl-jasmine95/Vue_test 以下所有知 ...
- Angular 星级评分组件
一.需求演变及描述: 1. 有一个“客户对公司的总体评价”的字段(evalutation).字段为枚举类型,0-5,对应关系为:0-暂无评价,1-很差,2-差,3-一般,4-好,5-很好 2. 后来需 ...
- JS原生评分组件
JS原生评分组件 <html> <head> <meta http-equiv="Content-Type" content="text/h ...
- Vue 2.0 组件库总结
UI组件 element - 饿了么出品的Vue2的web UI工具套件 Vux - 基于Vue和WeUI的组件库 mint-ui - Vue 2的移动UI元素 iview - 基于 Vuejs 的开 ...
- 【CSS】329- 非常强!3行核心css代码的rate评分组件
像rate评分组件一般都用javascript写,所以这次将是一个全新的尝试,用css实现一个rate评分 ❗ 核心代码也就三行? 01 效果图 02 原理 主要是借助radio单选框,梳理如下: 去 ...
随机推荐
- 记录一下 mysql 的查询中like字段的用法
SELECT * from t_yymp_auth_role where role_name not like '%测试%' and role_name not like '%部门%' and rol ...
- Network Stack : CookieMonster
CookieMonster The CookieMonster is the class in Chromium which handles in-browser storage, managem ...
- Cisco路由器交换机配置命令详解
1. 交换机支持的命令: 交换机基本状态:switch: :ROM状态, 路由器是rommon>hostname> :用户模式hostname# :特权模式hostname(config) ...
- BZOJ2115: [Wc2011] Xor(Dfs树,Xor线性无关组)
Description Input 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ,Di,表示 Si 与Ti之间存在 一条权值为 ...
- LintCode-最大子数组差
给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组和的差的绝对值|SUM(A) - SUM(B)|最大. 返回这个最大的差值. 您在真实的面试中是否遇到过这个题? Yes 例子 给出数组[1 ...
- 【Android实战】Bitmap图片的截屏、模糊处理、传递、使用
项目中遇到了这样一个需求: 当某个条件满足时就截取当前屏幕.并跳转到另外一个页面,同一时候将这个截屏图片作为下一个页面的背景图片,同一时候背景图片须要模糊处理 接下来就一步一步解决这个问题: 1.截取 ...
- OpenCASCADE Face Normals
OpenCASCADE Face Normals eryar@163.com Abstract. 要显示一个逼真的三维模型,其顶点坐标.顶点法向.纹理坐标这三个信息必不可少.本文主要介绍如何在Open ...
- Android自己定义效果——随机抽奖
那天逛android开源码的时候,看到一个wheel menu的自己定义效果,就是类似人家的那种转盘抽奖,把人家project看了下.认为非常好玩.可是不想在他上面改,于是就自己想了一个类似的随即抽奖 ...
- selection-内容选中跟光标移动
如果我们希望手动的改变edittext的光标,我们可以使用 setSelection(int start, int end); setSelection(int index); 这个方法,如果我们选择 ...
- js --- 递归结构图
// 用递归 来求 5 的阶乘 // n! = n * (n-1)! // 定义一个函数,用于求 n 的阶乘 function func(n) { ) { ; } // func(n-1) 因为传递的 ...