vue-star评星组件开发实例


Posted in Javascript onMarch 01, 2018

star文件夹下建立Star.vue,及相关的图片信息。便于组件的就近维护

vue-star评星组件开发实例

Star.vue:

<template>
 <div class="star" :class="starSize">
 <span v-for="(itemClass,key) in itemClasses" :class="itemClass" class="star-item"></span>
 </div>
</template>
<script>
 const LENGTH = 5;
 const CLS_ON = 'on';
 const CLS_HALF = 'half';
 const CLS_OFF = 'off';
 export default{
 props:{
  size:{ //尺寸,24,36,48
  type: Number
  },
  score:{
  type: Number
  }
 },
 computed:{
  starSize(){
  return 'star-'+ this.size;
  },
  itemClasses(){
  let result = [];
  let score = Math.floor(this.score*2)/2; //将数值调整为整数及.5的形式,例:4.3 => 4;4.6 => 4.5
  let hasDecimal = score %1 !==0;
  let integer = Math.floor(score);
  for(let i =0;i<integer;i++){
   result.push(CLS_ON);
  }
  if(hasDecimal){
   result.push(CLS_HALF);
  }
  while(result.length<LENGTH){
   result.push(CLS_OFF);
  }
  return result;
  }
 }
 }
</script>
<style lang="stylus" rel="stylesheet/stylus">
@import "../../common/stylus/mixin.styl";
.star
 font-size: 0
 .star-item
 display: inline-block
 background-repeat: no-repeat
 &.star-48
 .star-item
  width: 20px
  height: 20px
  margin-right: 22px
  background-size: 20px 20px
  &.last-child
  margin-right: 0
  &.on
  bg-image('star48_on')
  &.half
  bg-image('star48_half')
  &.off
  bg-image('star48_off')
 &.star-36
 .star-item
  width: 15px
  height: 15px
  margin-right: 6px
  background-size: 15px 15px
  &.last-child
  margin-right: 0
  &.on
  bg-image('star36_on')
  &.half
  bg-image('star36_half')
  &.off
  bg-image('star36_off')
 &.star-24
 .star-item
  width: 10px
  height: 10px
  margin-right: 3px
  background-size: 10px 10px
  &.last-child
  margin-right: 0
  &.on
  bg-image('star24_on')
  &.half
  bg-image('star24_half')
  &.off
  bg-image('star24_off')
</style>

Header.vue:

<star :size="48" :score="3.5"></star>
<script>
import star from '../star/Star.vue'
export default{
 components:{
 star
 }
}
</script>

mixin.styl:

bg-image($url)
 background-image: url($url + '@2x.png')
 @media (-webkit-min-device-pixel-ratio: 3),(min-device-pixel-ratio:3)
 background-image: url($url + '@3x.png')

以上这篇vue-star评星组件开发实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
DOM相关内容速查手册
Feb 07 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
May 12 Javascript
jQuery中:checkbox选择器用法实例
Jan 03 Javascript
vue.js 获取当前自定义属性值
Jun 01 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
Jun 04 Javascript
基于easyui checkbox 的一些操作处理方法
Jul 10 Javascript
微信小程序实现轮播图效果
Sep 07 Javascript
Mint UI 基于 Vue.js 移动端组件库
Nov 07 Javascript
完美解决linux下node.js全局模块找不到的情况
May 16 Javascript
深入理解Vue Computed计算属性原理
May 29 Javascript
JavaScript设计模式之构造函数模式实例教程
Jul 02 Javascript
JS实现处理时间,年月日,星期的公共方法示例
May 31 Javascript
浅谈Angular 的变化检测的方法
Mar 01 #Javascript
ES6学习笔记之map、set与数组、对象的对比
Mar 01 #Javascript
Node.js静态服务器的实现方法
Feb 28 #Javascript
JS脚本加载后执行相应回调函数的操作方法
Feb 28 #Javascript
vue+webpack 打包文件 404 页面空白的解决方法
Feb 28 #Javascript
webpack项目调试以及独立打包配置文件的方法
Feb 28 #Javascript
vue-cli+webpack项目 修改项目名称的方法
Feb 28 #Javascript
You might like
php的ZipArchive类用法实例
2014/10/20 PHP
Js 随机数产生6位数字
2010/05/13 Javascript
jQuery EasyUI API 中文文档 - NumberBox数字框
2011/10/13 Javascript
使用jquery读取html5 localstorage的值的方法
2013/01/04 Javascript
js 实现日期灵活格式化的小例子
2013/07/14 Javascript
javascript alert乱码的解决方法
2013/11/05 Javascript
javascript间隔刷新的简单实例
2013/11/14 Javascript
js判断元素是否隐藏的方法
2014/06/09 Javascript
JS实现自动变化的导航菜单效果代码
2015/09/09 Javascript
一不小心就做错的JS闭包面试题
2015/11/25 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
2016/01/26 Javascript
jquery 获取select数组与name数组长度的实现代码
2016/06/20 Javascript
JS前端笔试题分析
2016/12/19 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
JS常见算法详解
2017/02/28 Javascript
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
2018/09/18 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
2020/02/15 Javascript
jQuery实现点击滚动到指定元素上的方法分析
2020/03/19 jQuery
[01:55]2014DOTA2国际邀请赛快报:国土生病 紧急去医院治疗
2014/07/10 DOTA
[36:43]NB vs Optic 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
Python专用方法与迭代机制实例分析
2014/09/15 Python
Python中实现从目录中过滤出指定文件类型的文件
2015/02/02 Python
Python3读取UTF-8文件及统计文件行数的方法
2015/05/22 Python
Python3.6安装及引入Requests库的实现方法
2018/01/24 Python
Django 限制用户访问频率的中间件的实现
2018/08/23 Python
简单了解python协程的相关知识
2019/08/31 Python
Django 自定义分页器的实现代码
2019/11/24 Python
Python版中国省市经纬度
2020/02/11 Python
Python虚拟环境virtualenv创建及使用过程图解
2020/12/08 Python
python3列表删除大量重复元素remove()方法的问题详解
2021/01/04 Python
德国圣伯纳德草药屋:Kräuterhaus Sanct Bernhard(有中文站)
2018/08/05 全球购物
机关干部个人对照检查材料思想汇报
2014/09/28 职场文书
2014年志愿者工作总结
2014/11/20 职场文书
初三语文教学计划
2015/01/22 职场文书
MySQL 全文索引使用指南
2021/05/25 MySQL