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控件的生命周期介绍
Oct 22 Javascript
JS执行删除前的判断代码
Feb 18 Javascript
JavaScript静态类型检查工具FLOW简介
Jan 06 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
Dec 27 Javascript
微信小程序实战之运维小项目
Jan 17 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
Mar 22 Javascript
Textarea输入字数限制实例(兼容iOS&amp;安卓)
Jul 06 Javascript
深入理解vue2.0路由如何配置问题
Jul 18 Javascript
vue loadmore组件上拉加载更多功能示例代码
Jul 19 Javascript
Vue动态组件实例解析
Aug 20 Javascript
Vue 自定义动态组件实例详解
Mar 28 Javascript
Vue开发环境中修改端口号的实现方法
Aug 15 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
Smarty模板简单配置与使用方法示例
2016/05/23 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
2016/10/18 PHP
基于php流程控制语句和循环控制语句(讲解)
2017/10/23 PHP
PHP PDOStatement::nextRowset讲解
2019/02/01 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
javascript Xml增删改查(IE下)操作实现代码
2009/01/30 Javascript
jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
2010/04/01 Javascript
自己编写的类似JS的trim方法
2013/10/09 Javascript
javascript 通用loading动画效果实例代码
2014/01/14 Javascript
原生js实现日期联动
2015/01/12 Javascript
bootstrap表格分页实例讲解
2016/12/30 Javascript
JS实现的数字格式化功能示例
2017/02/10 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
2017/07/03 Javascript
原生js检测页面加载完毕的实例
2018/09/11 Javascript
Angular6 用户自定义标签开发的实现方法
2019/01/08 Javascript
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
微信公众号生成新浪短网址的实现(快速生成)
2019/08/18 Javascript
Python with语句上下文管理器两种实现方法分析
2018/02/09 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
Python matplotlib以日期为x轴作图代码实例
2019/11/22 Python
Python使用configparser库读取配置文件
2020/02/22 Python
Python基于正则表达式实现计算器功能
2020/07/13 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
Python Django路径配置实现过程解析
2020/11/05 Python
美国一家全面的在线零售鞋类公司:SHOEBACCA
2017/01/06 全球购物
妇产科护士自我鉴定
2013/10/15 职场文书
写给女生的道歉信
2014/01/14 职场文书
鲜果饮品店创业计划书
2014/01/21 职场文书
青年志愿者活动方案
2014/08/17 职场文书
2015年社区文体活动总结
2015/03/25 职场文书
《中国机长》观后感:敬畏生命,敬畏职责
2019/11/12 职场文书
Python selenium绕过webdriver监测执行javascript
2022/04/12 Python
分享python函数常见关键字
2022/04/26 Python
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS