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)
            }
    },
  • 相关阅读:
    在本地连接服务器上的mysql数据库
    js提取字符串中的数值
    下载安装mysql
    git最基础操作二(clone)
    点击页面出现富强、民主
    解决wepacke配置postcss-loader时autoprefixer失效问题
    li之间产生的间隙问题的解决方法
    webpack简单体验
    apply、call和bind
    remote Incorrect username or password ( access token)问题解决
  • 原文地址:https://www.cnblogs.com/panax/p/11024244.html
Copyright © 2011-2022 走看看