• vue 星星评分组件


    显示评分和打分组件,可现实半颗星星效果
    效果图:

    参数名 类型 说明
    score Number 分数 ,默认0,保留一位小数
    disabled Boolean 是否只读,默认false,鼠标点击可以打分
    showText Boolean 是否显示分数,默认false
    <!--评分-->
    <template>
      <div class="rate" :class="{'disabled':disabled}">
        <i v-for="i in 5" class="iconfont" @mouseenter="disabled?'':curScore=i" @mouseleave="disabled?'':curScore=''" @click="disabled?'':setScore(i)" :class="getClass(i)">
          <i v-if="disabled&&i==Math.floor(score)+1" class="iconfont icon-star" :style="''+width"></i>
        </i>
        <span v-if="showText" class="text">{{curScore||score}}分</span>
      </div>
    </template>
    
    <script>
      export default {
        name:'MyRate',
        props: {
          score: {
            type: Number,
            default: 0,
            //required: true
          },
          disabled: {
            type: Boolean,
            default: false,
          },
          showText: {
            type: Boolean,
            default: false,
          },
        },
        data() {
          return {
            curScore: '',
            '',
          }
        },
        created: function () {
          this.getDecimal();
        },
        methods: {
          getClass(i) {
            if (this.curScore === '') {
              return i <= this.score ? 'icon-star' : 'icon-star-o'
            } else {
              return i <= this.curScore ? 'icon-star' : 'icon-star-o'
            }
          },
          getDecimal() {
            this.width=Number(this.score * 100 - Math.floor(this.score) * 100)+'%';
          },
          setScore(i){
            this.$emit('update:score',i);//使用`.sync`修饰符,对score 进行“双向绑定
          }
        }
      }
    </script>

    //页面中调用

      只读,不显示数字:<my-rate :score="1.5" disabled/>
      只读,显示数字:<my-rate :score="3.6" disabled showText/>
      鼠标点击评分,显示数字:<my-rate :score.sync="curScore" showText/>
      <button @click="submit">提交</button>
      //submit(){alert(this.curScore);} 提交显示分数
  • 相关阅读:
    浏览器环境下JavaScript脚本加载与执行探析之代码执行顺序
    DOM扩展:DOM API的进一步增强[总结篇-下]
    DOM扩展:DOM API的进一步增强[总结篇-上]
    Network 第九篇
    Network 第八篇 – 动态路由-OSPF
    Network 第七篇
    Network 第六篇
    Network 第五篇
    Network 第四篇
    Network 第三篇
  • 原文地址:https://www.cnblogs.com/conglvse/p/9562521.html
Copyright © 2020-2023  润新知