美文网首页
vue实现五角星评分功能

vue实现五角星评分功能

作者: 微笑向暖hh | 来源:发表于2019-10-13 17:13 被阅读0次

这段时间做项目,看到有需求不用字体图标的五角星,只能用图片的,百度一下,,感觉不错正好拿来收藏。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>星星打分</title>
</head>
<body>

    <div id="app" class="row">
        <div class="form-group clearfix">
            <label class="control-label col-md-4">星星数量:{{starNum}}分</label>
            <div class="col-md-8">
                <div class="grade-box">
                    <img v-for="(star,index) in stars" v-bind:src="star.src" v-on:click="rating(index)" alt="星星图片" />
                </div>
            </div>
        </div>
    </div>

    <script src="vue.js"></script>
    <script>
        //星星的图片路径
        var starOffImg = "img/starOff.png";
        var starOnImg = "img/starOn.png";

        var app = new Vue({
            el: "#app",
            data: {
                stars: [{
                        src: starOffImg,
                        active: false
                    }, {
                        src: starOffImg,
                        active: false
                    }, {
                        src: starOffImg,
                        active: false
                    },
                    {
                        src: starOffImg,
                        active: false
                    }, {
                        src: starOffImg,
                        active: false
                    }
                ],
                starNum: 0,
            },
            methods: {
                //评分
                rating: function(index) {
                    var total = this.stars.length; //星星总数
                    var idx = index + 1; //这代表选的第idx颗星-也代表应该显示的星星数量
                    //进入if说明页面为初始状态
                    if(this.starNum == 0) {
                        this.starNum = idx;
                        for(var i = 0; i < idx; i++) {
                            this.stars[i].src = starOnImg;
                            this.stars[i].active = true;
                        }
                    } else {
                        //如果再次点击当前选中的星级-仅取消掉当前星级,保留之前的。
                        if(idx == this.starNum) {
                            for(var i = index; i < total; i++) {
                                this.stars[i].src = starOffImg;
                                this.stars[i].active = false;
                            }
                        }
                        //如果小于当前最高星级,则直接保留当前星级
                        if(idx < this.starNum) {
                            for(var i = idx; i < this.starNum; i++) {
                                this.stars[i].src = starOffImg;
                                this.stars[i].active = false;
                            }
                        }
                        //如果大于当前星级,则直接选到该星级
                        if(idx > this.starNum) {
                            for(var i = 0; i < idx; i++) {
                                this.stars[i].src = starOnImg;
                                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>
</body>

</html>

原文链接:https://blog.csdn.net/qq_16371909/article/details/79352348

相关文章

  • vue实现五角星评分功能

    这段时间做项目,看到有需求不用字体图标的五角星,只能用图片的,百度一下,,感觉不错正好拿来收藏。

  • iOS 绘制五角星(评分)

    最近项目中用到做评分功能,需要用到绘制星星,效果如下 下载地址 其关键点就是实现星星的绘制,那么如何实现五角星的...

  • vue实现评分

  • 【iOS】实现星级评分

    许多App都会有评价功能,这个时候或许会需要实现星级评分,下面我们来简单的实现一个星级评分功能。 具体实现 导入资...

  • App评分功能实现

    对于iOS开发者来说,我们的App内如果需要有“关于我们”或者“给xx好评”等类似的设计,就需要实现App的评分功...

  • Android 调用已安装市场,进行软件评分的功能实现

    Android App应用实现评分功能。先上图,点击去评分。弹出手机安装的所有应用市场供用户选择,去评分。 实现起...

  • 星级评分

    一、背景 许多App都会有评价功能,这个时候或许会需要实现星级评分,下面我们来简单的实现一个星级评分功能。 二、简...

  • iOS评分功能的实现

    许多应用都有跳转 App Store 评分或者下载更新的功能,网上查到很多跳转方法,这里记录一下 主要跳转方法有两...

  • VUE+WebRTC实现音视频直播

    如何使用 Vue 实现音视频功能 1 功能简介 本文将介绍如何快速使用 Vue 实现一个简单的实时音视频通话。 相...

  • 纯CSS实现网站常用的五角星评分和分数展示交互效果

    最近做的一个项目涉及到评分和展示分数的模块,UI设计师也给了几个切好的图片,实现五角星评分方式很多,本质爱折腾的精...

网友评论

      本文标题:vue实现五角星评分功能

      本文链接:https://www.haomeiwen.com/subject/qeckmctx.html