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 相关文章推荐
用ASP将SQL搜索出来的内容导出为TXT的代码
Jul 27 Javascript
js和jquery批量绑定事件传参数一(新猪猪原创)
Jun 23 Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
Jan 11 Javascript
Js实现动态添加删除Table行示例
Apr 14 Javascript
对 jQuery 中 data 方法的误解分析
Jun 18 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
Feb 26 Javascript
JS实现可调整倒计时间代码分享
Aug 18 Javascript
js实现的动画导航菜单效果代码
Sep 10 Javascript
js实现背景图自适应窗口大小
Jan 10 Javascript
js 递归和定时器的实例解析
Feb 03 Javascript
详解在vue-cli中使用路由
Sep 25 Javascript
Js逆向实现滑动验证码图片还原的示例代码
Mar 10 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中ob_start()函数的用法
2013/06/24 PHP
php实现Mysql简易操作类
2015/10/11 PHP
Symfony2学习笔记之模板用法详解
2016/03/17 PHP
js编码之encodeURIComponent使用介绍(asp,php)
2012/03/01 Javascript
js 获取(接收)地址栏参数值的方法
2013/04/01 Javascript
js鼠标及对象坐标控制属性详细解析
2013/12/14 Javascript
完美兼容各大浏览器获取HTTP_REFERER方法总结
2014/06/24 Javascript
Bootstrap每天必学之级联下拉菜单
2016/03/27 Javascript
Jquery attr()方法 属性赋值和属性获取详解
2016/04/15 Javascript
Javascript的无new构建实例详解
2016/05/15 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
2016/09/06 Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
2017/04/13 Javascript
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
使用JQ完成表格隔行换色的简单实例
2017/08/25 Javascript
jQuery中.attr()和.data()的区别分析
2017/09/03 jQuery
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
完美解决linux下node.js全局模块找不到的情况
2018/05/16 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
[03:30]DOTA2完美“圣”典精彩集锦
2016/12/27 DOTA
使用Python的Django框架实现事务交易管理的教程
2015/04/20 Python
简单实现python爬虫功能
2015/12/31 Python
Python使用re模块正则提取字符串中括号内的内容示例
2018/06/01 Python
用Python将一个列表分割成小列表的实例讲解
2018/07/02 Python
Ubuntu下Anaconda和Pycharm配置方法详解
2019/06/14 Python
tensor和numpy的互相转换的实现示例
2019/08/02 Python
Python 实现一个手机号码获取妹子名字的功能
2019/09/25 Python
Django设置Postgresql的操作
2020/05/14 Python
Sneaker Studio乌克兰:购买运动鞋
2018/03/26 全球购物
广州迈达威.net面试题目
2012/03/10 面试题
公司活动邀请函
2014/01/24 职场文书
接受捐赠答谢词
2014/01/27 职场文书
《世界多美呀》教学反思
2014/03/02 职场文书
警校毕业生自我评价
2014/04/06 职场文书
文明社区申报材料
2014/08/21 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
销售会议开幕词
2016/03/04 职场文书