zoukankan      html  css  js  c++  java
  • vue中星级判断函数

    完整代码:

    <template>

      <div>

       <div class="rate">

         <p>星级:</p>

         <div class="star" v-for="(item,index) in stars" :key="index" @click="rating(index)">
           <img :src="item.pic" alt="">
         </div>
       </div>
      </div>
    </template>
    <script>
     export default {
       data(){
         return{
          stars:[
            {pic:'../../../static/staroff.png',active:false},
            {pic:'../../../static/staroff.png',active:false},
            {pic:'../../../static/staroff.png',active:false},
            {pic:'../../../static/staroff.png',active:false},
            {pic:'../../../static/staroff.png',active:false}
          ],
          starNum:0;
         }
       },
       methods{
         // 星级评价函数
         rating(index){
          var total=this.stars.length;//星星总数
          var idx=index+1;//代表选的第idx颗星星,也代表显示星星的数量
          if(this.starNum==0){//表示页面是初始状态
            this.starNum=idx;
            for(var i=0;i<idx;i++){
              this.stars[i].pic="../../../static/star.png";
              this.stars[i].active=true
            }
          }else{
            if(idx==this.starNum){//如果再次点击当前选中的星级,仅取消掉当前星级,保留之前的
              for(var i=index;i<total;i++){
                this.stars[i].pic="../../../static/staroff.png";
                this.stars[i].active=false
              }
            }
            if(idx<this.starNum){// 如果小于当前最高星级,则直接保留当前星级
              for(var i=idx;i<this.starNum;i++){
                this.stars[i].pic="../../../static/staroff.png";
                this.stars[i].active=false
              }
            }
            if(idx>this.starNum){// 如果大于当前星级,则直接选择到该星级
              for(var i=0;i<idx;i++){
                this.stars[i].pic="../../../static/star.png";
                this.stars[i].active=true
              }
            }
            var count=0;//计数器:统计当前有几颗星
            for(var i=0;i<total;i++){
              if(this.stars[i].active){
                count++;
              }
            }
            this.starNum=count;
          }
         }
       }
     }
    </script>
     
     
  • 相关阅读:
    JS截取字符串方法实例
    Adobe Flash Builder 4.6 打开时提示Failed to create the Java Virtual Machine
    ionic 上拉菜单(ActionSheet)安装和iOS样式不一样
    Echarts柱状图百分比显示
    js替换数组中字符串实例
    jQuery获取json数据
    ionic左滑删除
    JavaScript修改日期格式
    ionic之angular1.X缓存问题解决
    angularjs1.X获取前一天日期
  • 原文地址:https://www.cnblogs.com/kangkang1207/p/10675500.html
Copyright © 2011-2022 走看看