尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

原生js多组星级评价

原生js多组星级评价
📅 发布时间:2026/7/28 18:49:50


所需图片:

html

<div class="starLevel"> <ul class="stars"> <li class="light star1"><a href="javascript:;">1</a></li> <li class="star1"><a href="javascript:;">2</a></li> <li class="star1"><a href="javascript:;">3</a></li> <li class="star1"><a href="javascript:;">4</a></li> <li class="star1"><a href="javascript:;">5</a></li> </ul> <ul class="stars"> <li class="light star2"><a href="javascript:;">1</a></li> <li class="star2"><a href="javascript:;">2</a></li> <li class="star2"><a href="javascript:;">3</a></li> <li class="star2"><a href="javascript:;">4</a></li> <li class="star2"><a href="javascript:;">5</a></li> </ul> <ul class="stars"> <li class="light star3"><a href="javascript:;">1</a></li> <li class="star3"><a href="javascript:;">2</a></li> <li class="star3"><a href="javascript:;">3</a></li> <li class="star3"><a href="javascript:;">4</a></li> <li class="star3"><a href="javascript:;">5</a></li> </ul> </div>

js
(遗留问题:无法用一个函数实现三组评分)

//打星星 var num1 =finalNum1 = tempNum1= 0; var lis1 = document.getElementsByClassName("star1"); //num:传入点亮星星的个数 //finalNum:最终点亮星星的个数 //tempNum:一个中间值 function fnShow(num1) { finalNum1 = num1 || tempNum1;//如果传入的num为0,则finalNum取tempNum的值 for (var i = 0; i < lis1.length; i++) { if(i < finalNum1){ lis1[i].className += " light "; } else{ lis1[i].className = "star1"; }//点亮星星就是加class为light的样式 } } for (var i = 1; i <= lis1.length; i++) { lis1[i - 1].index = i; lis1[i - 1].onmouseover = function() { //鼠标经过点亮星星。 fnShow(this.index);//传入的值为正,就是finalNum } lis1[i - 1].onmouseout = function() { //鼠标离开时星星变暗 fnShow(0);//传入值为0,finalNum为tempNum,初始为0 } lis1[i - 1].onclick = function() { //鼠标点击,同时会调用onmouseout,改变tempnum值点亮星星 tempNum1= this.index; } } var num2 =finalNum2 = tempNum2= 0; var lis2 = document.getElementsByClassName("star2"); //num:传入点亮星星的个数 //finalNum:最终点亮星星的个数 //tempNum:一个中间值 function fnShow2(num2) { finalNum2 = num2 || tempNum2;//如果传入的num为0,则finalNum取tempNum的值 for (var i = 0; i < lis2.length; i++) { if(i < finalNum2){ lis2[i].className += " light "; } else{ lis2[i].className = "star2"; }//点亮星星就是加class为light的样式 } } for (var i = 1; i <= lis2.length; i++) { lis2[i - 1].index = i; lis2[i - 1].onmouseover = function() { //鼠标经过点亮星星。 fnShow2(this.index);//传入的值为正,就是finalNum } lis2[i - 1].onmouseout = function() { //鼠标离开时星星变暗 fnShow2(0);//传入值为0,finalNum为tempNum,初始为0 } lis2[i - 1].onclick = function() { //鼠标点击,同时会调用onmouseout,改变tempnum值点亮星星 tempNum2= this.index; } } var num3 =finalNum3 = tempNum3= 0; var lis3 = document.getElementsByClassName("star3"); //num:传入点亮星星的个数 //finalNum:最终点亮星星的个数 //tempNum:一个中间值 function fnShow3(num3) { finalNum3 = num3 || tempNum3;//如果传入的num为0,则finalNum取tempNum的值 for (var i = 0; i < lis3.length; i++) { if(i < finalNum3){ lis3[i].className += " light "; } else{ lis3[i].className = "star3"; }//点亮星星就是加class为light的样式 } } for (var i = 1; i <= lis3.length; i++) { lis3[i - 1].index = i; lis3[i - 1].onmouseover = function() { //鼠标经过点亮星星。 fnShow3(this.index);//传入的值为正,就是finalNum } lis3[i - 1].onmouseout = function() { //鼠标离开时星星变暗 fnShow3(0);//传入值为0,finalNum为tempNum,初始为0 } lis3[i - 1].onclick = function() { //鼠标点击,同时会调用onmouseout,改变tempnum值点亮星星 tempNum3= this.index; } } }

相关新闻

  • 如何快速找到并安装最适合的用户脚本:Greasy Fork实用指南
  • 《龍魂·曲速引擎推演舱:把广义相对论做成3D交互页,我是用 Kimi 这么干的》
  • 编程 MD(d)、MT(d)编译选项的区别

最新新闻

  • 大模型小白必看:收藏这份 Agent Loop 实战指南,解锁 AI 办事能力!
  • 2026年人工智能与智慧城市国际学术会议(IC-AISC 2026)
  • Bsgrid事件(单击某行数据来实现另一个表格的数据绑定)
  • 告别踩坑!广州消协推荐具备中检认证资质的5家名包回收店 - 日常比对手册
  • 使用Spring的ClassPathResource加载资源文件
  • Windows 11任务栏终极自定义指南:打破微软限制,解锁隐藏功能

日新闻

  • 力旷智能:伺服驱动系统在制药收瓶设备中的应用解析
  • 2026 网安入门避坑指南,零基础如何避开无效学习直接上手实战
  • 揭秘CFC项目:如何通过手机摄像头实现850kbps无网络文件传输

周新闻

  • 大连理工大学与东京大学联手打造的“主动型AI助手“
  • 170.2026年国家级科研瓶颈:超精密单点金刚石切削(SPDT)光学表面生成
  • SongBloom:革命性歌曲生成框架深度解析——如何通过交织自回归与扩散模型创作完整音乐

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号