star组件
一、star组件
<template>
<div class="star" :class="starType">
<span v-for="itemClass in itemClasses" :class="itemClass" class="star-item" track-by="$index" ></span>
</div>
</template> <script type="text/ecmaScript-6">
const LENGTH = 5
const CLS_ON = 'on'
const CLS_HALF = 'half'
const CLS_OFF = 'off'
export default {
props: {
size: {
type: Number
},
score: {
type: Number
}
},
computed: {
starType() {
return 'star-' + this.size
},
itemClasses() {
let result = []
let score = Math.floor(this.score * 2) / 2
let hasDecimal = (score % 1 !== 0)
let integer = Math.floor(this.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)
}
console.log('result', result)
return result
}
}
}
</script> <style lang="stylus" rel="stylesheet/stylus">
@import "../../common/styles/minxin.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
&.off
bg-image('../../assets/img/star48_off')
&.on
bg-image('../../assets/img/star48_on')
&.half
bg-image('../../assets/img/star48_half')
&.star-36
.star-item
width:15px
height:15px
margin-right:16px
background-size:15px 15px
&.last-child
margin-right:0
&.on
bg-image('../../assets/img/star36_on')
&.half
bg-image('../../assets/img/star36_half')
&.off
bg-image('../../assets/img/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('../../assets/img/star24_on')
&.half
bg-image('../../assets/img/star24_half')
&.off
bg-image('../../assets/img/star24_off') </style>
二、图片背景引用
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")
三、引用
import star from '../../components/star/star'
四、注册
props: {
seller: {
type: Object
}
},
五、应用
<star :size="48" :score="seller.score"></star>
star组件的更多相关文章
- 10 star组件之分页, search模糊查询, action批量处理
1.分页组件高阶 1.分页的class形式(有bug,请看下面的) """ 自定义分页组件 """ class Pagination(obj ...
- 【vue】饿了么项目-header组件开发
1.数据传递的理解 在App.vue中用到了header组件,首先注册组件 components: { 'v-header': header } 然后才能引用 <v-header :seller ...
- VUE2.0 饿了吗视频学习笔记(七-终):compute,循环,flex,display:table
一.star组件使用到了computed属性 computed相当于属性的一个实时计算,当对象的某个值改变的时候,会进行实时计算. computed: { starType() { return 's ...
- [转]vue全面介绍--全家桶、项目实例
慢慢了解vue及其全家桶的过程 原文http://blog.csdn.net/zhenghao35791/article/details/67639415 简介 “简单却不失优雅,小巧而不乏大匠”. ...
- vue全面介绍
Vue.js 是一个JavaScriptMVVM库,是一套构建用户界面的渐进式框架.它是以数据驱动和组件化的思想构建的,采用自底向上增量开发的设计.相比于Angular.js,Vue.js提供了更加简 ...
- U3D之Editor扩展学习
Unity3D提供了强大的编辑器扩展机制,在项目开发中,如果可以将一些繁琐的工作放在编辑器扩展中进行,则会大大提高效率.本文对编辑器扩展进行了一些总结,希望对有兴趣编写编辑器扩展的开发人员有所帮助.当 ...
- vue全面介绍--全家桶、项目实例
简介 “简单却不失优雅,小巧而不乏大匠”. 2016年最火的前端框架当属Vue.js了,很多使用过vue的程序员这样评价它,“vue.js兼具angular.js和react.js的优点,并剔除了它们 ...
- 可能是目前最完整的前端框架 Vue.js 全面介绍
Vue.js 是一个JavaScriptMVVM库,是一套构建用户界面的渐进式框架. 摘要 2016年最火的前端框架当属Vue.js了,很多使用过vue的程序员这样评价它,“vue.js兼具angul ...
- 不会发布npm包?进来看看?
前言 npm(Node Package Manager),一个Node的包管理器,平时我们常用的公共模块(插件)或者叫做包大多都放在上面,所以接下来要封装的插件,我们就简单称它为npm包,本文从就从这 ...
随机推荐
- java 并发(三)---Thread 线程
Thread 的状态 线程共有五种状态.分别是: (1)新建 (2)就绪 (3)运行 (4)阻塞 (5)死亡 ,下面列列举的状态需要结合状态示意图更好理解. 新建状态(New): 新创建了一个线程对 ...
- maven仓库中的LastUpdated文件删除脚本
cleanLastUpdated.bat(windows版本) @echo off rem create by NettQun rem 这里写你的仓库路径 set REPOSITORY_PATH=D: ...
- 简单的maven项目
手动建立一个简单的maven项目,不使用eclipse 好吧,第一步:建立一个项目路径,比如在d盘新建一个mavenTest文件夹,在mavenTest文件夹中建立HelloMaven的文件夹,作为项 ...
- react相关知识点链接整理
1.React组件之间的通信 2.中间件做代理解决跨域问题 3.不要再问我跨域的问题了 4.React 组件数据流 && 组件间沟通 5.如何理解虚拟DOM 6.react性能调谐与d ...
- [转]webapi部署在IIS7.5报404的解决方案
1.iis 目录权限设置 2.转自:http://www.cnblogs.com/youlies/p/6042169.html 在web.config添加如下节点 <system.webServ ...
- C语言--清理getchar缓存
getchar()采用了缓冲区,而getch()才是立即获取,所以要想再用getchar()获取正确的值必须先清空缓冲区,如果是windows操作系统,用fflush(stdin)函数或rewind( ...
- 利用canvas进行一个饼形图的绘制
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Android学习——自定义控件(二)
这篇文章来介绍自定义组合控件,自定义组合控件的应用场景很多,比如当你的UI如下时: 倘若不使用组合控件,则需要在XML文件中声明4个TextView和4个EditText,而使用了组合控件,则只需要四 ...
- CSS media query应用中的层叠特性使用最佳实践
media query是css3规范中引入的,它提供了一种responsive design的基础机制:浏览器在不同size的设备中将以不同样式展现网页,这就给一个网页能够适应不同device一种可能 ...
- git internal for computer scientists
http://eagain.net/articles/git-for-computer-scientists/ git object storage仅仅是一个DAG of objects, 有几种类型 ...