新闻中心

如何利用js脚本制作星级评分系统_js星级评分脚本编写教程

2025-11-05
浏览次数:
返回列表
答案:通过HTML构建五星结构,CSS设置样式与悬停效果,J*aScript实现点击评分与交互反馈。具体描述:使用span标签创建5个星星并设置data-value;CSS定义默认灰色和悬停黄色,并添加过渡动画;JS为每个星绑定click和mouseover事件,点击时更新评分并高亮对应星,悬停时预览评分,离开后保留已选状态,最后可扩展半星或存储功能。

如何利用js脚本制作星级评分系统_js星级评分脚本编写教程

制作一个简单的星级评分系统,可以通过 HTML、CSS 和 J*aScript 实现。用户点击星星图标即可选择评分,鼠标悬停时高亮显示当前选中及之前的星,提升交互体验。下面是一个完整的实现教程。

1. 基础HTML结构

首先创建包含5个星星图标的容器,每个星星用一个标签表示,便于后续绑定事件。

<div class="star-rating">
  <span class="star" data-value="1">★</span>
  <span class="star" data-value="2">★</span>
  <span class="star" data-value="3">★</span>
  <span class="star" data-value="4">★</span>
  <span class="star" data-value="5">★</span>
</div>
<p>当前评分:<span id="rating-value">0</span></p>

2. 使用CSS美化样式

设置星星的大小、颜色,并定义默认和选中状态的样式。

BrandCrowd BrandCrowd

一个在线Logo免费设计生成器

BrandCrowd 200 查看详情 BrandCrowd
.star-rating {
  font-size: 30px;
  color: #ddd;
  cursor: pointer;
}
.star {
  transition: color 0.2s ease;
}
.star:hover,
.star.active {
  color: #ffc107;
}

3. J*aScript实现交互逻辑

为每个星星添加点击和悬停事件,实现评分选择与预览效果。

const stars = document.querySelectorAll('.star');
const ratingValue = document.getElementById('rating-value');

stars.forEach(star => {
  // 点击事件:设置评分
  star.addEventListener('click', function() {
    const value = this.getAttribute('data-value');
    ratingValue.textContent = value;

    // 移除所有active类
    stars.forEach(s => s.classList.remove('active'));
    // 给当前及之前星星添加active类
    stars.forEach(s => {
      if (s.getAttribute('data-value') <= value) {
        s.classList.add('active');
      }
    });
  });

  // 悬停效果:预览评分
  star.addEventListener('mouseover', function() {
    const value = this.getAttribute('data-value');
    stars.forEach(s => {
      if (s.getAttribute('data-value') <= value) {
        s.style.color = '#ffc107';
      } else {
        s.style.color = '#ddd';
      }
    });
  });

  // 鼠标离开后恢复原始状态(保留已选中的)
  star.addEventListener('mouseout', function() {
    stars.forEach(s => {
      if (s.classList.contains('active')) {
        s.style.color = '#ffc107';
      } else {
        s.style.color = '#ddd';
      }
    });
  });
});

4. 可选增强功能

可以进一步扩展功能,例如:

  • 禁用重复评分:点击已选星星取消评分(设为0)
  • 支持半星评分:使用两个字符或SVG图形实现半颗星
  • 保存到服务器:通过 fetch 发送评分数据
  • 页面加载回显评分:从 localStorage 或后端读取初始值

基本上就这些。不复杂但容易忽略细节,比如悬停恢复时要判断是否已选中。只要结构清晰,事件处理得当,就能做出流畅的星级评分效果。

以上就是如何利用js脚本制作星级评分系统_js星级评分脚本编写教程的详细内容,更多请关注其它相关文章!


# 绑定  # 网络营销推广公司注册  # 关键词搜索引擎排名  # 金华门户网站建设  # 小型网站的优化流程  # 德阳游戏推广招聘网站大全  # seo实战操作  # 科技seo分类  # seo精细化运动  # 杭州私人网站建设公司  # 怎么屏蔽掉营销号的推广  # 是一个  # 未接  # 道中  # 文本框  # 何为  # js脚本制作教程  # 弹出  # 鼠标  # 背景色  # 点击事件  # ai  # 后端  # ssl  # seo  # svg  # js  # html  # java  # javascript  # css 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: Go语言中Map存储的结构体如何调用指针方法:深入解析与实践  J*aScript生成器_j*ascript异步迭代  使用Pandas转换并合并DataFrame:多列映射至统一结构  Django通过AJAX异步上传图片并保存至模型的完整指南  黑猫投诉统一入口官网 消费者权益保护投诉平台  不同用户不同价格! 索尼开启账户个性化定价测试  Word2013如何插入视频和音频媒体_Word2013媒体插入的多媒体支持  c++中的std::launder有什么实际用途_c++对象生命周期与指针优化  大象笔记网页版入口 印象笔记网页版登录入口  解决深度学习模型训练初期异常高损失与完美验证准确率问题  Promise错误处理:在catch后终止链式then执行的策略  蛙漫安全无毒 官方认证的绿色入口  淘宝网网页版登录入口 淘宝官方网页版快捷登录  QQ网页版官方账号入口 QQ网页版网页版登录指南  处理嵌套交互式控件:前端可访问性指南  Log4j Console Appender性能瓶颈与高并发优化策略  Golang如何测试channel通信行为_Golang channel通信测试与分析方法  抖音网页版企业服务中心登录入口_抖音网页版企业登录平台  机构:以往存储涨价周期小米利润率实际上有所改善 能转嫁给消费者等  J*aScript打印功能_j*ascript输出控制  服务端验证_j*ascript输入检查  Win11怎么关闭触摸屏_Windows 11禁用HID符合标准触摸屏  在J*a中如何使用Exception包装底层异常_异常包装与信息传递方法说明  J*a TimerTask文件监控:HashMap状态管理与常见陷阱规避指南  12306选座怎么选到临时改签座_12306改签选座策略与步骤  在React函数组件中利用原生HTML5进行邮箱地址验证  J*a递归快速排序中静态变量的状态管理与陷阱  J*aScript中安全有效地处理localStorage字符串数据  谷歌浏览器无痕模式怎么开 Chrome开启无痕浏览设置方法【教程】  我的世界官方游戏入口 我的世界官网平台直达链接  如何解决电商平台定制报价请求的“黑洞”问题,SprykerQuoteRequest模块助你提升客户体验与销售效率  AO3最新入口2025公告_AO3中文官网合集  QQ邮箱官方邮箱登录入口 QQ邮箱网页版快速访问  学习通在线学习平台 学习通网页版直接进入课程中心  iwriter统一登录平台 iwrite账号密码登录页面  响应式容器内容自动缩放与宽高比维持教程  《主播少女的秘密账号迷宫》首支宣传片  Win10系统怎么查看已安装更新_Win10卸载有问题的更新补丁  Safari浏览器输入栏卡顿如何解决 Safari搜索建议与缓存清理  b站如何看历史记录_b站观看历史找回方法  如何使用spryker/configurable-bundles-products-resource-relationship模块解决复杂产品捆绑关系难题  Python类型检查:优化关联可选属性的Mypy推断策略  windows10怎么查看硬盘序列号_windows10硬盘id查询命令  漫蛙Manwa2官网入口地址分享 漫蛙漫画PC版永久访问通道  限制HTML日期输入框的日期选择范围  铁路12306卧铺选择攻略 铁路12306下铺座位预定技巧  夸克浏览器桌面版同步不了书签怎么处理 夸克浏览器跨设备同步异常解决方案  2026春节假期票务安排_2026春节放假购票指南  AO3官方镜像站点汇总 AO3同人作品网页版直达链接  如何使 Jest 模拟函数默认抛出错误以提高测试效率 

搜索