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 call和apply方法
Nov 24 Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
May 14 Javascript
JQuery操作tr和td内容的方法实例
Mar 06 Javascript
jq选项卡鼠标延迟的插件实例
May 13 Javascript
js渐变显示渐变消失示例代码
Aug 01 Javascript
js中reverse函数的用法详解
Dec 26 Javascript
javascript 面向对象封装与继承
Nov 27 Javascript
jQuery 点击获取验证码按钮及倒计时功能
Sep 20 jQuery
element vue validate验证名称重复 输入框与后台重复验证 特殊字符 字符长度 及注意事项小结【实例代码】
Nov 20 Javascript
微信小程序 image组件遇到的问题
May 28 Javascript
微信小程序跨页面传递data数据方法解析
Dec 13 Javascript
javascript中导出与导入实现模块化管理教程
Dec 03 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的一些基础知识分享
2011/07/27 PHP
PHP无刷新上传文件实现代码
2011/09/19 PHP
thinkphp特殊标签用法概述
2014/11/24 PHP
php计算函数执行时间的方法
2015/03/20 PHP
深入剖析浏览器退出之后php还会继续执行么
2016/05/17 PHP
php读取本地json文件的实例
2018/03/07 PHP
用cssText批量修改样式
2009/08/29 Javascript
JS动态添加Table的TR,TD实现方法
2015/01/28 Javascript
jQuery制作简洁的图片轮播效果
2015/04/03 Javascript
jQuery.prop() 使用详解
2015/07/19 Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
2015/11/21 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
Vue瀑布流插件的使用示例
2018/09/19 Javascript
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
一看就会的vuex实现登录验证(附案例)
2020/01/09 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
2020/02/19 Javascript
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
2020/05/13 Javascript
Python使用enumerate获取迭代元素下标
2020/02/03 Python
将python字符串转化成长表达式的函数eval实例
2020/05/11 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
使用CSS3的背景渐变Text Gradient 创建文字颜色渐变
2014/08/19 HTML / CSS
纯css3实现的动画按钮的实例教程
2014/11/17 HTML / CSS
Sneaker Studio波兰:购买运动鞋
2018/04/28 全球购物
澳洲健康食品网上商店:Aussie Health Products
2018/06/15 全球购物
Hotels.com拉丁美洲:从豪华酒店到经济型酒店的预定优惠和折扣
2019/12/09 全球购物
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
《囚绿记》教学反思
2014/03/01 职场文书
管理建议书范文
2014/05/13 职场文书
市贸粮局召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
工程部经理岗位职责
2015/02/02 职场文书
培训计划通知
2015/07/15 职场文书
幼儿园毕业致辞
2015/07/29 职场文书
毕业设计工作总结
2015/08/14 职场文书
使用RedisTemplat实现简单的分布式锁
2021/11/20 Redis