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控制上传文件的大小
Oct 26 Javascript
用JSON做数据传输格式中的一些问题总结
Dec 21 Javascript
jquery删除提示框弹出是否删除对话框
Jan 07 Javascript
初步了解javascript面向对象
Nov 09 Javascript
巧用Javascript的逻辑运算符
Dec 02 Javascript
Vue2.0实现简单分页及跳转效果
Jul 29 Javascript
vue实现购物车小案例
Sep 27 Javascript
JavaScript判断浏览器版本的方法
Nov 03 Javascript
VUEX 数据持久化,刷新后重新获取的例子
Nov 12 Javascript
微信JSSDK实现打开摄像头拍照再将相片保存到服务器
Nov 15 Javascript
如何优雅地取消 JavaScript 异步任务
Mar 22 Javascript
js实现三角形粒子运动
Sep 22 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
类的另类用法--数据的封装
2006/10/09 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
2014/05/10 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
2015/12/23 PHP
php获取开始与结束日期之间所有日期的方法
2016/11/29 PHP
php生成短网址/短链接原理和用法实例分析
2020/05/29 PHP
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
AeroWindow 基于JQuery的弹出窗口插件
2011/06/27 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
indexOf 和 lastIndexOf 使用示例介绍
2014/09/02 Javascript
jquery提示效果实例分析
2014/11/25 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
2015/08/12 Javascript
详解jQuery中ajax.load()方法
2017/01/25 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
webpack进阶——缓存与独立打包的用法
2017/08/02 Javascript
jQuery+koa2实现简单的Ajax请求的示例
2018/03/06 jQuery
vue异步加载高德地图的实现
2018/06/19 Javascript
微信小程序实现文字跑马灯
2020/05/26 Javascript
详解基于原生JS验证表单组件xy-form
2019/08/20 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
2019/08/27 jQuery
js代码实现轮播图
2020/05/04 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
[34:10]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
Django Admin实现上传图片校验功能
2016/03/06 Python
Python3实现并发检验代理池地址的方法
2016/09/18 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
2018/01/07 Python
如何优雅地处理Django中的favicon.ico图标详解
2018/07/05 Python
django-orm F对象的使用 按照两个字段的和,乘积排序实例
2020/05/18 Python
Python装饰器结合递归原理解析
2020/07/02 Python
Python字典实现伪切片功能
2020/10/28 Python
浅谈CSS3鼠标移入图片动态提示效果(transform)
2017/11/06 HTML / CSS
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
生态养殖创业计划书
2014/05/06 职场文书
作息时间调整通知
2015/04/22 职场文书
Python使用海龟绘图实现贪吃蛇游戏
2021/06/18 Python
本地搭建minio文件服务器(使用bat脚本启动)的方法
2022/07/15 Servers