小编给大家分享一下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>
以上是“Vue如何实现星级评价效果”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。