国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue.js 實(shí)現(xiàn)評(píng)價(jià)五角星組件的實(shí)例代碼

2019-11-19 13:16:32
字體:
供稿:網(wǎng)友

餓了么的五角星有三種形狀,分別是實(shí)星,半星,空星

并且組件要能實(shí)現(xiàn),這個(gè)五角星不同大小,評(píng)分也不一樣,比如滿分五顆星,四顆半星,四顆星等等....

所以需要像組件傳入一個(gè)大小:size,一個(gè)分?jǐn)?shù):score

代碼如下:

<template>   <div class="star" :class="starType">     <span class="star-item" :class="itemClass" v-for="itemClass in itemClasses"></span>   </div> </template> <script type="text/ecmascript-6">   const LENGTH=5;   const CLS_ON="on";   const CLS_OFF="off";   const CLS_HALF="half";  export default {     props:{       size:{         type:Number       },       score:{         type:Number       }     },     computed:{       starType(){         return "star-"+this.size;       },       itemClasses(){         //計(jì)算屬性        let result=[];         let score=Math.floor(this.score*2)/2;         let hasDecimal=score%1!==0; //是否有效數(shù)        let integer=Math.floor(score);//取整        for (var i = 0; i < integer; i++) {           result.push(CLS_ON);         }         if (hasDecimal) {           //有且最多一個(gè)半星          result.push(CLS_HALF);         }         while(result.length<LENGTH){           result.push(CLS_OFF);         }         //數(shù)組填充完畢        return result;       }     }   }; </script> <style lang="stylus" ref="sheetstyle/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>

其中:使用了size為48,36,24,所以我們需要圖片3種類型的圖片,并且要使用適應(yīng)不同分辨率,要有@2x.png,@3x.png圖片

對(duì)了,bg-image方法是在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")

組件的使用就很簡(jiǎn)單了

<star :size="48" :score="3.5"></star>

總結(jié)

以上所述是小編給大家介紹的vue.js 實(shí)現(xiàn)評(píng)價(jià)五角星組件的實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)武林網(wǎng)網(wǎng)站的支持!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 巴青县| 丽水市| 喜德县| 肥城市| 京山县| 曲阜市| 钟山县| 濮阳县| 定结县| 建瓯市| 汝南县| 吉首市| 翁源县| 甘南县| 唐山市| 若尔盖县| 定西市| 南涧| 琼海市| 华安县| 桐城市| 百色市| 桃园市| 东台市| 德保县| 建始县| 彭州市| 苍溪县| 碌曲县| 象州县| 抚州市| 淮北市| 汪清县| 宁武县| 怀安县| 浠水县| 乌审旗| 鸡东县| 泰州市| 乌审旗| 聂拉木县|