要使用jQuery实现星星评分功能,我们可以创建一组星星图标(通常使用字体图标如Font Awesome),当用户鼠标悬停或点击时,星星会改变颜色以表示评分。下面是一个详细的步骤和代码示例:
步骤 1: 引入jQuery和Font Awesome
确保在HTML文件中引入jQuery和Font Awesome的CDN链接。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Star Rating</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<!-- Your HTML content goes here -->
</body>
</html>
步骤 2: 创建星星评分的HTML结构
使用Font Awesome的星形图标,创建一个包含5个星星的容器。
<div class="star-rating">
<i class="far fa-star" data-rating="1"></i>
<i class="far fa-star" data-rating="2"></i>
<i class="far fa-star" data-rating="3"></i>
<i class="far fa-star" data-rating="4"></i>
<i class="far fa-star" data-rating="5"></i>
</div>
步骤 3: 编写jQuery代码
使用hover
和click
事件来处理星星的悬停和点击事件。当鼠标悬停在星星上时,所有当前星星及之前的星星都应变为黄色(已填充的星星)。当鼠标离开时,星星应恢复原状。点击星星时,应保存评分。
$(document).ready(function() {
$('.star-rating i').on({
// 鼠标悬停时
mouseenter: function() {
const rating = $(this).data('rating');
$(this).prevAll('.fa-star').addBack().addClass('selected');
},
// 鼠标离开时
mouseleave: function() {
$('.fa-star').removeClass('selected');
},
// 点击时
click: function() {
const rating = $(this).data('rating');
$(this).prevAll('.fa-star').addBack().addClass('selected');
// 保存评分
console.log('Rating:', rating);
}
});
});
步骤 4: 添加CSS样式
添加一些基本的CSS样式以改善显示效果。
<style>
.star-rating {
display: flex;
justify-content: space-between;
width: 150px;
font-size: 1.5em;
}
.selected {
color: gold;
}
</style>
将以上所有代码整合到一个HTML文件中,你就可以看到一个基本的星星评分功能了。用户可以通过悬停和点击星星来进行评分。