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 相关文章推荐
javascript:以前写的xmlhttp池,代码
May 18 Javascript
js 单引号 传递方法
Jun 22 Javascript
JQuery从头学起第一讲
Jul 04 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
Nov 03 Javascript
JS中的构造函数详细解析
Mar 10 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
Nov 18 Javascript
JSON遍历方式实例总结
Dec 07 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
Sep 13 Javascript
通过AngularJS实现图片上传及缩略图展示示例
Jan 03 Javascript
jQuery插件HighCharts实现气泡图效果示例【附demo源码】
Mar 13 Javascript
详解小程序开发经验:多页面数据同步
May 18 Javascript
vue多页面项目中路由使用history模式的方法
Sep 23 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 list() 将数组中的值赋给变量的简单实例
2016/06/13 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
PHP封装curl的调用接口及常用函数详解
2018/05/31 PHP
PHP抽象类与接口的区别实例详解
2019/05/09 PHP
js控制div及网页相关属性的代码
2009/12/19 Javascript
Firefox+FireBug使JQuery的学习更加轻松愉快
2010/01/01 Javascript
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
有关于JS辅助函数inherit()的问题
2013/04/07 Javascript
简洁Ajax函数处理(示例代码)
2013/11/15 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
javascript跨域的方法汇总
2015/10/23 Javascript
jquery 判断div show的状态实例
2016/12/03 Javascript
Bootstrap CSS组件之面包屑导航(breadcrumb)
2016/12/17 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
2017/06/04 Javascript
Vue.js实现输入框绑定的实例代码
2017/08/24 Javascript
JS验证输入的是否是数字及保留几位小数问题
2018/05/09 Javascript
vue项目中添加单元测试的方法
2018/07/21 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
浅谈bootstrap layer.open中end的使用方法
2019/09/12 Javascript
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
[00:33]2018DOTA2亚洲邀请赛TNC出场
2018/04/04 DOTA
Python中文件操作简明介绍
2015/04/13 Python
使用Python的内建模块collections的教程
2015/04/28 Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
2016/12/15 Python
一条命令解决mac版本python IDLE不能输入中文问题
2018/05/15 Python
Python 3.x基于Xml数据的Http请求方法
2018/12/28 Python
Python子类继承父类构造函数详解
2019/02/19 Python
CSS3实现超慢速移动动画效果非常流畅无卡顿
2014/06/15 HTML / CSS
英国领先的维生素和补充剂品牌:Higher Nature
2019/08/26 全球购物
英国排名第一的冲浪店:Ann’s Cottage
2020/06/21 全球购物
优秀学生事迹材料
2014/02/08 职场文书
幼儿园教师的考核评语
2014/04/18 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
八月一日观后感
2015/06/10 职场文书
如何正确理解python装饰器
2021/06/15 Python