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 密码强弱度检测万能插件
Feb 25 Javascript
由JavaScript技术实现的web小游戏(不含网游)
Jun 12 Javascript
DOM节点的替换或修改函数replaceChild()用法实例
Jan 12 Javascript
浅谈jquery事件处理
Apr 24 Javascript
js闭包所用的场合以及优缺点分析
Jun 22 Javascript
Angular 常用指令实例总结整理
Dec 13 Javascript
jquery动态添加以及遍历option并获取特定样式名称的option方法
Jan 29 jQuery
AngularJS动态添加数据并删除的实例
Feb 27 Javascript
总结JavaScript在IE9之前版本中内存泄露问题
Apr 28 Javascript
vue中Axios的封装与API接口的管理详解
Aug 09 Javascript
Vue 表情包输入组件的实现代码
Jan 21 Javascript
react合成事件与原生事件的相关理解
May 13 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
Yii查询生成器(Query Builder)用法实例教程
2014/09/04 PHP
php array_values 返回数组的值实例详解
2016/11/17 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
js 获取和设置css3 属性值的实现方法
2013/05/06 Javascript
javascript文件加载管理简单实现方法
2015/07/25 Javascript
jQuery焦点图轮播效果实现方法
2016/12/19 Javascript
微信小程序 用户数据解密详细介绍
2017/01/09 Javascript
Vue项目webpack打包部署到服务器的实例详解
2017/07/17 Javascript
Angular实现点击按钮控制隐藏和显示功能示例
2017/12/29 Javascript
理解Koa2中的async&amp;await的用法
2018/02/05 Javascript
Vue实现带进度条的文件拖动上传功能
2018/02/23 Javascript
echarts多条折线图动态分层的实现方法
2019/05/24 Javascript
[01:56]《DOTA2》中文配音CG
2013/04/22 DOTA
[45:44]完美世界DOTA2联赛PWL S2 FTD vs PXG 第一场 11.27
2020/12/01 DOTA
浅析python 内置字符串处理函数的使用方法
2014/06/11 Python
Python修改MP3文件的方法
2015/06/15 Python
Python聊天室实例程序分享
2016/01/05 Python
Python实现破解12306图片验证码的方法分析
2017/12/29 Python
python中virtualenvwrapper安装与使用
2018/05/20 Python
浅述python中深浅拷贝原理
2018/09/18 Python
用Python实现数据的透视表的方法
2018/11/16 Python
python实现静态web服务器
2019/09/03 Python
Python 3.8正式发布重要新功能一览
2019/10/17 Python
Python pandas库中的isnull()详解
2019/12/26 Python
python爬虫添加请求头代码实例
2019/12/28 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
绝对令人的惊叹的CSS3折叠效果(3D效果)整理
2012/12/30 HTML / CSS
html5 canvas 使用示例
2010/10/22 HTML / CSS
现代化办公人员工作的自我评价
2013/10/16 职场文书
国际商务系学生个人的自我评价
2013/11/26 职场文书
建筑节能汇报材料
2014/08/22 职场文书
父亲婚礼答谢词
2015/01/04 职场文书
2015年党风廉政建设目标责任书
2015/05/08 职场文书
检讨书怎么写?
2019/06/21 职场文书
python基础之函数的定义和调用
2021/10/24 Python
鸿蒙3.0体验感怎么样? 鸿蒙3.0系统评测向
2022/08/14 数码科技