• 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>
    

      

  • 相关阅读:
    Spring加载xsd引起的问题小记
    kafka配置参数
    nginx常见内部参数,错误总结
    从毕业到现在的总结
    storm坑之---传递对象
    Java多线程读取大文件
    webpack4.0.1安装问题及解决方法
    git入门篇shell
    less教程
    原生js的ajax请求
  • 原文地址:https://www.cnblogs.com/karila/p/7562928.html
Copyright © 2020-2023  润新知