zoukankan      html  css  js  c++  java
  • 原生js星星评分源码

    html:

    <div id="fiveStars">
            <div>到场时间:<img v-for="(star,index) in stars.list" :src="star.src" @click="rating(index, stars)"  /></div>   // index,下标 stars 总的图片
    </div>

     

    引入图片路径:

    //黑星星的路径
    const starOff ='../../../static/img/wjx-old.png';
    //亮星星的路径
    const starOn='../../../static/img/wjx-new.png';

     

    data:设置

    stars: {
          list: [
                                {src: starOff, active: false},           // src: 图片星星,默认灰色,  active,添加
                                {src: starOff, active: false},
                                {src: starOff, active: false},
                                {src: starOff, active: false},
                                {src: starOff, active: false},
           ],
           starNum:0           // 点击星星的次数
    },
    
    
     

     

    methods:

    rating(index, stars){
                    let total = stars.list.length;//星星总数
                    let idx = index + 1//代表应该显示的星星的数量
                    if(stars.starNum ==0){ //只点了一个星星
                        stars.starNum =idx
                        for(var i=0;i<idx;i++){
                        stars.list[i].src=starOn;
                        stars.list[i].active=true;
                        }
                    }else{
              //如果再次点击当前选中的星级-仅取消掉当前星级,保留之前的。
                        if(idx == stars.starNum){
                            for(var i=idx;i<total;i++){
                                stars.list[i].src=starOff;
                                stars.list[i].active=false;
                            }
                        }
              //如果小于当前最高星级,则直接保留当前星级
                        if(idx <stars.starNum){
                            for(var i=idx;i<stars.starNum;i++){
                                stars.list[i].src=starOff;
                                stars.list[i].active=false;
                            }
                        }
              //如果大于当前星级,则直接选到该星级
                        if(idx > stars.starNum){
                            for(var i=0;i<idx;i++){
                                stars.list[i].src=starOn;
                                stars.list[i].active=true;
                            }
                        }
                        let count =0;//当前几颗星
                        for(var i=0;i<total;i++){
                            if(stars.list[i].active){
                                count++;
                            }
                        }
                        stars.starNum =count;
              console.log(stars.starNum)
            }
    },
  • 相关阅读:
    poj 2021
    树状数组的修改+查询
    poj 1182
    windows网络模型之重叠IO(完成例程)的使用
    windows网络模型之重叠IO的使用
    python解析HTML之:PyQuery库的介绍与使用
    windows 网络通讯模型Overlapped (转)(未看)
    (转)写的非常好的一篇HTTP协议详解
    (转)Wireshark基本介绍和学习TCP三次握手
    http中COOKIE和SESSION有什么区别?(转知乎)
  • 原文地址:https://www.cnblogs.com/panax/p/11024244.html
Copyright © 2011-2022 走看看