zoukankan      html  css  js  c++  java
  • 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
           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
           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
            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>
    

      

  • 相关阅读:
    leetcode5 Longest Palindromic Substring
    leetcode17 Letter Combinations of a Phone Number
    leetcode13 Roman to Integer
    leetcode14 Longest Common Prefix
    leetcode20 Valid Parentheses
    leetcode392 Is Subsequence
    leetcode121 Best Time to Buy and Sell Stock
    leetcode198 House Robber
    leetcode746 Min Cost Climbing Stairs
    tomcat下使用druid配置jnid数据源
  • 原文地址:https://www.cnblogs.com/karila/p/7562928.html
Copyright © 2011-2022 走看看