实现 jQuery 星星效果教程

概述

在本教程中,我将教给你如何使用 jQuery 实现星星效果。这是一个常见的动画效果,通常用于评分或评价系统中。我们将逐步指导你完成这个项目,让你能够更好地理解 jQuery 的核心概念和用法。

整体流程

下表展示了实现这个星星效果的主要步骤:

步骤 描述
1 创建 HTML 结构
2 引入 jQuery
3 添加 CSS 样式
4 实现星星切换效果
5 绑定事件处理程序

接下来我们将详细介绍每一步所需的操作。

1. 创建 HTML 结构

首先,我们需要在 HTML 中创建一个容器,用于显示星星效果。在代码块中添加以下 HTML 代码:

<div class="rating">
  <i class="star"></i>
  <i class="star"></i>
  <i class="star"></i>
  <i class="star"></i>
  <i class="star"></i>
</div>

在上述代码中,我们创建了一个名为 "rating" 的 div 元素,并在其中插入了五个具有 "star" 类的 i 元素。这些元素将用于表示星星。

2. 引入 jQuery

为了使用 jQuery,我们需要在 HTML 文件中引入 jQuery 库。在 head 标签中添加以下代码:

<script src="

上述代码将从 CDN 加载最新版本的 jQuery 库。

3. 添加 CSS 样式

为了让星星看起来更加酷炫,我们需要为其添加一些 CSS 样式。在 head 标签中添加以下代码:

<style>
  .rating {
    display: inline-block;
    font-size: 0;
  }

  .star {
    display: inline-block;
    width: 20px;
    height: 20px;
    background: url(star.png) no-repeat;
    background-size: 100% 100%;
    cursor: pointer;
  }

  .active {
    background-position: 0 -20px;
  }

  .hover {
    background-position: 0 -40px;
  }
</style>

在上述代码中,我们定义了 .rating 类表示容器的样式,.star 类表示每个星星的样式。我们还定义了 .active 类表示激活状态的星星样式,.hover 类表示鼠标悬停状态的星星样式。请根据实际情况修改 star.png 的文件路径。

4. 实现星星切换效果

现在,我们将使用 jQuery 实现星星的切换效果。在 <script> 标签中添加以下代码:

$(document).ready(function() {
  $('.star').click(function() {
    $(this).toggleClass('active');
    $(this).prevAll('.star').addClass('active');
    $(this).nextAll('.star').removeClass('active');
  });

  $('.star').hover(function() {
    $(this).addClass('hover');
    $(this).prevAll('.star').addClass('hover');
  }, function() {
    $(this).removeClass('hover');
    $(this).prevAll('.star').removeClass('hover');
  });
});

上述代码将在页面加载完成后绑定事件处理程序。当点击星星时,会切换它们的激活状态,并将其前面的星星设置为激活状态,后面的星星设置为非激活状态。当鼠标悬停在星星上时,它们将显示悬停状态。

5. 绑定事件处理程序

最后一步是将事件处理程序绑定到星星上,以实现交互效果。在 <script> 标签中添加以下代码:

$(document).ready(function() {
  $('.star').click(function() {
    // 点击事件处理程序
  });

  $('.star').hover(function() {
    // 悬停事件处理程序
  }, function() {
    // 鼠标移出事件处理程序
  });
});

现在你可以在相应的事件处理程序中添加自定义代码,以实现你想要的效果。

类图

下面是实现