首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js 鼠标星星

在JavaScript中实现鼠标悬停显示星星(通常用于评分或点赞功能)的功能,可以通过HTML、CSS和JavaScript结合来完成。下面是一个简单的示例:

HTML

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Mouse Star Example</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div class="star-rating">
        <span class="star" data-value="1">&#9733;</span>
        <span class="star" data-value="2">&#9733;</span>
        <span class="star" data-value="3">&#9733;</span>
        <span class="star" data-value="4">&#9733;</span>
        <span class="star" data-value="5">&#9733;</span>
    </div>
    <script src="script.js"></script>
</body>
</html>

CSS (styles.css)

代码语言:txt
复制
.star-rating {
    display: flex;
    font-size: 2em;
    cursor: pointer;
}

.star {
    color: grey;
    transition: color 0.2s;
}

.star.filled {
    color: gold;
}

JavaScript (script.js)

代码语言:txt
复制
document.addEventListener('DOMContentLoaded', function() {
    const stars = document.querySelectorAll('.star');

    stars.forEach(star => {
        star.addEventListener('mouseover', function() {
            const value = this.getAttribute('data-value');
            highlightStars(value);
        });

        star.addEventListener('mouseout', function() {
            resetStars();
        });

        star.addEventListener('click', function() {
            const value = this.getAttribute('data-value');
            // 这里可以添加代码将评分发送到服务器
            console.log(`Star rating: ${value}`);
        });
    });

    function highlightStars(value) {
        stars.forEach(star => {
            if (star.getAttribute('data-value') <= value) {
                star.classList.add('filled');
            } else {
                star.classList.remove('filled');
            }
        });
    }

    function resetStars() {
        stars.forEach(star => {
            star.classList.remove('filled');
        });
    }
});

解释

  1. HTML: 创建了一个包含五个星星的容器,每个星星都有一个data-value属性,表示其评分值。
  2. CSS: 定义了星星的基本样式和过渡效果。.filled类用于高亮显示选中的星星。
  3. JavaScript:
    • 添加事件监听器以处理鼠标悬停、移出和点击事件。
    • highlightStars函数根据鼠标悬停的星星值高亮显示相应的星星。
    • resetStars函数在鼠标移出时重置所有星星的样式。
    • 点击事件可以用于将评分发送到服务器(示例中仅在控制台输出)。

应用场景

  • 评分系统: 用户可以对产品、服务或内容进行评分。
  • 点赞功能: 用户可以快速点赞或取消点赞。
  • 交互式反馈: 提供即时的视觉反馈,增强用户体验。

这个示例展示了如何使用JavaScript实现一个简单的鼠标悬停显示星星的功能。你可以根据需要进一步扩展和定制这个功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的文章

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券