要使用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代码

使用hoverclick事件来处理星星的悬停和点击事件。当鼠标悬停在星星上时,所有当前星星及之前的星星都应变为黄色(已填充的星星)。当鼠标离开时,星星应恢复原状。点击星星时,应保存评分。

$(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文件中,你就可以看到一个基本的星星评分功能了。用户可以通过悬停和点击星星来进行评分。