JQuery RateYo 是 JQuery 的星级评价插件,它通过简单的配置就可以轻松实现自定义的星级评价系统。下面是使用 RateYo 插件实现星级评价系统的完整攻略:
步骤 1: 引入 jQuery 和 RateYo 插件
首先需要在页面中引入 JQuery 和 RateYo 插件的脚本文件:
<!-- 引入 JQuery -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<!-- 引入 RateYo 插件 -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/rateYo/2.3.2/jquery.rateyo.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/rateYo/2.3.2/jquery.rateyo.min.js"></script>
步骤 2: 创建页面元素
在页面中创建一个元素用于展示星级评价系统:
<div id="rateYo"></div>
步骤 3: 初始化 RateYo 插件
在页面加载完毕之后,通过 JavaScript 代码初始化 RateYo 插件,并配置相关参数,如星级数量、颜色等:
$(document).ready(function(){
$("#rateYo").rateYo({
starWidth: "30px",
numStars: 5,
minValue: 1,
maxValue: 5,
ratedFill: "#FFD700",
fullStar: true,
onSet: function (rating, rateYoInstance) {
alert("你给了" + rating + "颗星!");
}
});
});
以上代码会创建一个 5 颗星的评价系统,星级大小为 30 像素,选中的星级颜色为黄色。并通过 onSet 回调函数在用户进行评分操作后获取用户的评分。
示例说明一:自定义星级数量和半星评价
如果需要实现自定义的星级数量和支持半星评价,只需要将 numStars 参数设置为更大的数值,如 10 等,并将 fullStar 参数设置为 false。然后通过 CSS 样式来控制半星的显示效果,如下:
$(document).ready(function(){
$("#rateYo").rateYo({
starWidth: "30px",
numStars: 10,
minValue: 0,
maxValue: 10,
ratedFill: "#FFD700",
fullStar: false,
onSet: function (rating, rateYoInstance) {
alert("你给了" + rating + "颗星!");
}
});
});
样式:
.rateyo .rateyo-container .rateyo-item {
width: 20%;
display: inline-block;
position: relative;
}
.rateyo .rateyo-container .rateyo-item .rateyo-half-star{
position: absolute;
width: 50%;
height: 100%;
overflow: hidden;
z-index: 9;
left: 0;
}
.rateyo .rateyo-container .rateyo-item .rateyo-half-star:before{
content: '';
display: block;
position: absolute;
width: 200%;
height: 100%;
background: #FFD700;
left: -50%;
}
这样就可以实现支持半星评价的星级评价系统了。
示例说明二:添加自定义图片作为星级图标
如果需要使用自定义的星级图标,只需要在初始化时把 starSvg 参数设置为自定义 SVG 图片地址即可。
$(document).ready(function(){
$("#rateYo").rateYo({
starWidth: "50px",
numStars: 5,
minValue: 0,
maxValue: 5,
ratedFill: "#FFD700",
starSvg: '<svg viewBox="0 0 24 24"><defs><linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" style="stop-color: #FDB813; stop-opacity: 1"></stop><stop offset="100%" style="stop-color: #FF7432; stop-opacity: 1"></stop></linearGradient></defs><path fill="url(#grad1)" d="M12,16.3l-4.6,2.8l1-5.7L2.4,9.8l5.7-0.8L12,2l3.9,6.9l5.7,0.8l-4.1,4.5l1,5.7L12,16.3z M12,14.1l2.6,1.6l-0.6-3.5 l2.1-2.3l-3-0.4L12,6.4L9.9,9.2l-3,0.4l2.2,2.3l-0.6,3.5L12,14.1z" /></svg>',
onSet: function (rating, rateYoInstance) {
alert("你给了" + rating + "颗星!");
}
});
});
这里使用一个渐变的 SVG 图片作为了星级图标,并设置星级的宽度为 50 像素。更换具体图标时只需要替换 starSvg 参数值即可。
综上所述,使用 JQuery RateYo 插件实现星级评价系统非常简单,只需要通过初始化和配置即可。同时支持自定义星级数量、自定义半星评价和自定义星级图标等功能。