Vue实现星级评价效果

Vue实现星级评价效果

本文实例为大家分享了Vue实现星级评价效果的具体代码,供大家参考,具体内容如下

1、本文五角星采用的阿里巴巴矢量图标库;
2、数据内容可根据实际需求进行改动;
3、主要实现了鼠标滑动改变样式,鼠标离开样式消失,鼠标点击对应的五角星样式被改变及完成评价;
4、本文章只是简单的实现了功能,仅做参考!

<!doctype html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>五星评价(Vue组件)</title>     <!-- 引入阿里矢量图标 -->     <link rel="stylesheet" href="./iconfont.css" >     <!-- 引入vue -->     <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>     <style>         .box{             width:400px;             height: 100px;             border: 1px solid black;             margin:0 auto;         }         .box .icon-wjxb{             font-size:44px;             line-height: 100px;             color:grey;             padding: 0 10px;         }         .box  .active{             color:yellow;         }     </style> </head> <body>     <!-- 星级评价板块 -->     <div class="box">         <star></star>     </div> </body> <script>     // 创建局部组件     var star = {         // 子模版         template:`<div>                     <span class="iconfont icon-wjxb" v-for="n in 5" @mouseenter="change(n)" @mouseleave="unchange" :class="{'active':activeIndex>=n}" @click="fix(n)"></span>                 </div>`,         data(){             return {                 activeIndex:-1,  // 用来判断什么时候改变样式                 flag:false       // 用来验证用户是否点击过             }         },         methods:{             // 鼠标进入触发,接收参数             change(n){                 // 判断用户是否点击过                 if(!this.flag){                     // 没有点击过,改变样式                     this.activeIndex = n;                 }             },             // 鼠标离开时触发             unchange(){                 // 判断用户是否点击过                 if(!this.flag){                     // 没点击过,鼠标离开后样式消失                     this.activeIndex = -1;                 }             },             // 点击时触发,接收参数             fix(n){                 // 赋值                 this.activeIndex = n;                 // 改变状态                 this.flag = true;             }         }     }     new Vue({         // 挂载元素         el:".box",         // 注册组件         components:{             star:star         }     })     </script> </html>

推荐阅读