值得一看
广告
彩虹云商城
广告

热门广告位

使用JavaScript实现一个简单的评分组件_javascript UI组件

答案:通过HTML、CSS和JavaScript实现可点击评分的星星组件,支持悬停预览与选中状态。1. HTML用data-value标记分数;2. CSS设置默认颜色及悬停高亮;3. JS监听鼠标事件,更新active状态与显示分数;4. 可扩展半星、只读或封装复用。

使用javascript实现一个简单的评分组件_javascript ui组件

实现一个简单的评分组件,可以通过点击星星来选择分数,支持鼠标悬停效果和自定义评分数值。以下是使用原生 JavaScript 和简单 HTML/CSS 构建的评分组件示例。

1. HTML 结构

创建一个容器,包含若干代表星星的元素:

<div class=”rating” id=”rating”>

  <span data-value=”1″>★</span>

立即学习“Java免费学习笔记(深入)”;

  <span data-value=”2″>★</span>

  <span data-value=”3″>★</span>

  <span data-value=”4″>★</span>

  <span data-value=”5″>★</span>

</div>

<span id=”rating-value”>当前评分:0</span>

2. CSS 样式

让星星排列成一行,设置默认颜色和悬停效果:

.rating {

  font-size: 30px;

  color: #ddd;

  user-select: none;

}

.rating span {

  cursor: pointer;

  transition: color 0.2s;

}

.rating span:hover,

.rating span.active {

  color: orange;

}

3. JavaScript 功能逻辑

添加交互行为:悬停预览、点击选中评分:

const ratingEl = document.getElementById(‘rating’);

const valueDisplay = document.getElementById(‘rating-value’);

let currentRating = 0;

// 更新显示的高亮状态

一键职达

一键职达

AI全自动批量代投简历软件,自动浏览招聘网站从海量职位中用AI匹配职位并完成投递的全自动操作,真正实现’一键职达’的便捷体验。

一键职达79

查看详情
一键职达

function updateStars(rating) {

  Array.from(ratingEl.children).forEach(star => {

    if (parseInt(star.dataset.value) <= rating) {

      star.classList.add(‘active’);

    } else {

      star.classList.remove(‘active’);

    }

  });

}

// 鼠标悬停效果

ratingEl.addEventListener(‘mouseover’, function(e) {

  if (e.target.tagName === ‘SPAN’) {

    updateStars(parseInt(e.target.dataset.value));

  }

});

// 鼠标离开时恢复到当前评分

ratingEl.addEventListener(‘mouseout’, function() {

  updateStars(currentRating);

});

// 点击设置评分

ratingEl.addEventListener(‘click’, function(e) {

  if (e.target.tagName === ‘SPAN’) {

    currentRating = parseInt(e.target.dataset.value);

    valueDisplay.textContent = `当前评分:${currentRating}`;

  }

});

4. 使用说明与扩展建议

这个评分组件轻量且易于集成。你可以根据需要进行以下增强:

  • 支持半星评分(通过更复杂的 DOM 或 SVG 实现)
  • 添加只读模式
  • 封装为可复用函数或类,方便多个实例使用
  • 绑定事件回调,比如提交评分

基本上就这些,不复杂但足够实用。

相关标签:

css javascript java html js svg seo ssl 排列 JavaScript css html Array if foreach 封装 select const class pointer JS function 事件 dom transition 鼠标事件 ui

大家都在看:

JavaScript:将特定格式字符串高效转换为二维数组的教程
JavaScript:将字符串转换为数组
解决 Next.js 中 Multer 文件上传不完整的问题
JavaScript 数组归并:reduce() 方法实现数组累计操作
JavaScript 代码分割:动态导入与懒加载的实现
温馨提示: 本文最后更新于2025-10-31 22:41:35,某些文章具有时效性,若有错误或已失效,请在下方留言或联系在线客服
文章版权声明 1 本网站名称: 创客网
2 本站永久网址:https://new.ie310.com
1 本文采用非商业性使用-相同方式共享 4.0 国际许可协议[CC BY-NC-SA]进行授权
2 本站所有内容仅供参考,分享出来是为了可以给大家提供新的思路。
3 互联网转载资源会有一些其他联系方式,请大家不要盲目相信,被骗本站概不负责!
4 本网站只做项目揭秘,无法一对一教学指导,每篇文章内都含项目全套的教程讲解,请仔细阅读。
5 本站分享的所有平台仅供展示,本站不对平台真实性负责,站长建议大家自己根据项目关键词自己选择平台。
6 因为文章发布时间和您阅读文章时间存在时间差,所以有些项目红利期可能已经过了,能不能赚钱需要自己判断。
7 本网站仅做资源分享,不做任何收益保障,创业公司上收费几百上千的项目我免费分享出来的,希望大家可以认真学习。
8 本站所有资料均来自互联网公开分享,并不代表本站立场,如不慎侵犯到您的版权利益,请联系79283999@qq.com删除。

本站资料仅供学习交流使用请勿商业运营,严禁从事违法,侵权等任何非法活动,否则后果自负!
THE END
喜欢就支持一下吧
点赞9赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容