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 textContent与innerText的异同分析
Oct 22 Javascript
javascript制作坦克大战全纪录(1)
Nov 27 Javascript
JavaScript获取当前cpu使用率的方法
Dec 15 Javascript
基于JQuery实现分隔条的功能
Jun 17 Javascript
Bootstrap学习笔记之环境配置(1)
Dec 07 Javascript
Bootstrap CSS使用方法
Dec 23 Javascript
详解axios在vue中的简单配置与使用
May 10 Javascript
jQuery中使用validate插件校验表单功能
May 24 jQuery
微信小程序自定义单项选择器样式
Jul 25 Javascript
Vue实现商品分类菜单数量提示功能
Jul 26 Javascript
nest.js 使用express需要提供多个静态目录的操作方法
Oct 24 Javascript
vue3.0封装轮播图组件的步骤
Mar 04 Vue.js
浅谈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学习笔记 数组的常用函数
2011/06/13 PHP
解析php file_exists无效的解决办法
2013/06/26 PHP
让iframe框架网页在任何浏览器下自动伸缩
2006/08/18 Javascript
如何实现JS函数的重载
2006/09/22 Javascript
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
JavaScript访问字符串中单个字符的两种方法
2015/07/03 Javascript
js实现简单的联动菜单效果
2015/08/19 Javascript
jquery实现的横向二级导航效果代码
2015/08/26 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
相册展示PhotoSwipe.js插件实现
2016/08/25 Javascript
利用Angularjs和bootstrap实现购物车功能
2016/08/31 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
JS框架之vue.js(深入三:组件1)
2016/09/29 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
2017/01/08 Javascript
js实现加载页面就自动触发超链接的示例
2017/08/31 Javascript
浅谈vue中数据双向绑定的实现原理
2017/09/14 Javascript
深入研究React中setState源码
2017/11/17 Javascript
nodejs多版本管理总结
2018/04/03 NodeJs
js正则表达式校验指定字符串的方法
2018/07/23 Javascript
vue或react项目生产环境去掉console.log的操作
2020/09/02 Javascript
[02:14]完美“圣”典2016风云人物:xiao8专访
2016/12/01 DOTA
Python加pyGame实现的简单拼图游戏实例
2015/05/15 Python
详解Python核心编程中的浅拷贝与深拷贝
2018/01/07 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
Pycharm Plugins加载失败问题解决方案
2020/11/28 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
幼儿园教师个人反思
2014/01/30 职场文书
建筑结构施工专业推荐信
2014/02/21 职场文书
高等教育专业自荐信范文
2014/03/26 职场文书
电子商务专业自荐信
2014/06/02 职场文书
公司员工违法违章行为检讨书
2019/06/24 职场文书
创业分两种人:那么哪些适合创业?,哪些适合不适合创业呢?
2019/08/23 职场文书
Python&Matlab实现灰狼优化算法的示例代码
2022/03/21 Python
vue中data里面的数据相互使用方式
2022/06/05 Vue.js