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 相关文章推荐
一个背景云变换js特效 鼠标移动背景云变化
Dec 28 Javascript
js将控件隐藏的方法及display属性介绍
Jul 04 Javascript
js获取下拉列表的值和元素个数示例
May 07 Javascript
jquery实现的鼠标下拉滚动置顶效果
Jul 24 Javascript
javascript函数中参数传递问题示例探讨
Jul 31 Javascript
js获取checkbox值的方法
Jan 28 Javascript
JS烟花背景效果实现方法
Mar 03 Javascript
javascript中日期函数new Date()的浏览器兼容性问题
Sep 05 Javascript
分享JavaScript监听全部Ajax请求事件的方法
Aug 28 Javascript
AngularJS bootstrap启动详解及实例代码
Sep 14 Javascript
AngularJS创建一个上传照片的指令实例代码
Feb 24 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
Sep 29 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保留两位小数并且四舍五入及不四舍五入的方法
2013/09/22 PHP
PHP获取文件夹大小函数用法实例
2015/07/01 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
2020/05/29 PHP
JavaScript获取GridView中用户点击控件的行号,列号
2009/04/14 Javascript
基于jquery的超简单上下翻
2010/04/20 Javascript
关于火狐(firefox)及ie下event获取的两种方法
2012/12/27 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
2014/12/18 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
简单的js表格操作
2016/09/24 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
2017/05/18 Javascript
关于定制FileField中的上传文件名称问题
2017/08/22 Javascript
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
微信小程序在text文本实现多种字体样式
2019/11/08 Javascript
[03:21]【TI9纪实】Old Boys
2019/08/23 DOTA
Python找出9个连续的空闲端口
2016/02/01 Python
python编码最佳实践之总结
2016/02/14 Python
Python实现简单的HttpServer服务器示例
2017/09/25 Python
Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例
2017/11/23 Python
Python3匿名函数用法示例
2018/07/25 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
2018/12/26 Python
Python数据类型之Number数字操作实例详解
2019/05/08 Python
Python实现堡垒机模式下远程命令执行操作示例
2019/05/09 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
Django如何重置migration的几种情景
2021/02/24 Python
用html5实现语音搜索框的方法
2014/03/18 HTML / CSS
应届毕业生求职信范文
2013/12/18 职场文书
仓库管理计划书
2014/05/04 职场文书
2014年会策划方案
2014/05/11 职场文书
预备党员公开承诺书
2014/05/28 职场文书
班级心理活动总结
2014/07/04 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
税务干部群众路线教育实践活动自我剖析材料
2014/09/21 职场文书
2014年中学生检讨书大全
2014/10/09 职场文书
DE1107机评
2022/04/05 无线电
oracle设置密码复杂度及设置超时退出的功能
2022/06/28 Oracle