欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2018年08月13日 11:34:02   作者:至情相遇  
這篇文章主要介紹了vue.js 實現(xiàn)評價五角星組件的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

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

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

所以需要像組件傳入一個大小:size,一個分數(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(){
         //計算屬性
        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) {
           //有且最多一個半星
          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種類型的圖片,并且要使用適應不同分辨率,要有@2x.png,@3x.png圖片

對了,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")

組件的使用就很簡單了

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

總結

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

相關文章

最新評論