小编给大家分享一下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如何实现星级评价效果”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。