当前位置: 首页 > news >正文

原生js多组星级评价


所需图片:

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; } } }
http://www.jsqmd.com/news/1282297/

相关文章:

  • 高性价比长续航轿车推荐 - 资讯在线
  • 如何快速找到并安装最适合的用户脚本:Greasy Fork实用指南
  • AI水印不是加个logo!揭秘频域嵌入、神经指纹与语义水印三大范式性能对比(含FID/PSNR/Breaking Rate实测数据)
  • 【JAVA毕业设计】基于 SpringBoot+Vue 的面向高校师生的学习交流及资源共享服务平台 轻量化校园互助社区与教学资料共享管理系统(源码+文档+远程调试,全bao定制等)
  • 如何免费快速下载网易云和QQ音乐歌词?完整指南
  • MySQL 表中的增删改查
  • 编程 MD(d)、MT(d)编译选项的区别
  • 《龍魂·曲速引擎推演舱:把广义相对论做成3D交互页,我是用 Kimi 这么干的》
  • OpenModScan:免费开源的工业Modbus调试工具完整指南
  • 突发!AG KIT反重力优先智能体工程套件,功能特性与使用指南全揭秘
  • 相似三角形
  • 年轻人的代步车推荐 - 资讯在线
  • 校园定制平台Spring Boot架构设计与实现
  • 笔记四:常用布局:相对布局——RelativeLayout
  • 称最多水的容器
  • 百度页面
  • 牛客剑指Offer——从尾到头打印链表
  • JSP总结
  • gdb 开始调试开始上手
  • 龍魂本地融媒体工坊”落地指令(草案)基于梁文锋只追求AGI 的误区修正
  • 深井泵低液位自动停泵方案设计 - 水位监测系统观察员
  • 企业AI定制开发踩过的坑——交付周期凭什么能压到几周
  • Unity WebGL高性能WebSocket通信:混合事件驱动模型解析与实战
  • 深蓝G318和iCAR V27怎么选?20万级增程硬派SUV选购参考 - 资讯在线
  • docker安装shipyard
  • 157、画质竞赛与DXOMARK:评分体系拆解与针对性调优技巧
  • 5分钟找回QQ空间全部历史说说的终极指南:GetQzonehistory使用教程
  • Ryujinx模拟器终极指南:3步在PC上畅玩Switch游戏
  • 郑州今日黄金回收报价 足金金条 K 金免费鉴定 无火耗折旧费 - 奢侈品回收评测
  • 送你一篇最实用的接口测试科普文章