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 相关文章推荐
jQuery.prototype.init选择器构造函数源码思路分析
Feb 05 Javascript
jquery插件validate验证的小例子
May 08 Javascript
JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器
Dec 12 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
Dec 17 Javascript
js定时器的使用(实例讲解)
Jan 06 Javascript
jQuery树形下拉菜单特效代码分享
Aug 15 Javascript
JS原型与原型链的深入理解
Feb 15 Javascript
babel基本使用详解
Feb 17 Javascript
JS奇技之利用scroll来监听resize详解
Jun 15 Javascript
AngularJS监听ng-repeat渲染完成的两种方法
Jan 16 Javascript
Vue中在新窗口打开页面及Vue-router的使用
Jun 13 Javascript
elementUI 动态生成几行几列的方法示例
Jul 11 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 实现代码复用的一个方法 traits新特性
2015/02/22 PHP
php生成圆角图片的方法
2015/04/07 PHP
Yii中的cookie的发送和读取
2016/07/27 PHP
PHP类的特性实例分析
2016/09/28 PHP
PHP实现批量删除(封装)
2017/04/28 PHP
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
JQuery FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
2010/09/12 Javascript
JQuery实现倒计时按钮具体方法
2013/11/14 Javascript
使用CSS样式position:fixed水平滚动的方法
2014/02/19 Javascript
js身份证判断方法支持15位和18位
2014/03/18 Javascript
nodejs调用cmd命令实现复制目录
2015/05/04 NodeJs
jquery实现未经美化的简洁TAB菜单效果
2015/08/28 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
2016/02/29 Javascript
asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)
2016/05/05 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
JavaScipt选取文档元素的方法(推荐)
2016/08/05 Javascript
jQuery Pagination分页插件使用方法详解
2017/02/28 Javascript
浅谈js for循环输出i为同一值的问题
2017/03/01 Javascript
js 两个日期比较相差多少天的实例
2017/10/19 Javascript
JS实现求5的阶乘示例
2019/01/21 Javascript
vue+elementUi图片上传组件使用详解
2019/08/20 Javascript
JS实现横向轮播图(中级版)
2020/01/18 Javascript
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
vue-calendar-component 封装多日期选择组件的实例代码
2020/12/04 Vue.js
[01:08:33]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
通过python顺序修改文件名字的方法
2018/07/11 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
python求平均数、方差、中位数的例子
2019/08/22 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
2019/09/26 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
2020/04/17 Python
html5 利用canvas实现超级玛丽简单动画
2013/09/06 HTML / CSS
StubHub巴西:购买和出售您的门票
2016/07/22 全球购物
求职自荐信的格式
2014/04/07 职场文书
建设投标担保书
2014/05/13 职场文书
房屋买卖定金协议书
2016/03/21 职场文书
Winsows11性能如何? win11性能测评多核竟比Win10差了10%
2021/11/21 数码科技