原生js实现星级评分
今天来实现下星级评分,后边并跟有评价文字。
html代码如下:
<span class="star"> <b class="ct-star ic-star-off"></b> <b class="ct-star ic-star-off"></b> <b class="ct-star ic-star-off"></b> <b class="ct-star ic-star-off"></b> <b class="ct-star ic-star-off"></b> </span> <span class="star-txt"></span>
css如下:
.ct-star { display: inline-block; margin: 0 1px; width: 19px; height: 19px; background: url(img/stars.png) no-repeat; vertical-align: -2px; cursor: pointer; } .ic-star-off { background-position: -39px 0; }
js如下:
<script> window.onload=function(){ var aSpan=document.getElementsByClassName("star")[0]; var aStxt=document.getElementsByClassName("star-txt")[0]; var aBstar=aSpan.getElementsByTagName("b"); var arrBtxt=["很差","较差","还行","推荐","力荐"]; var num=0; var onOff=true;for(var i= 0;i<aBstar.length;i++){ aBstar[i].index=i; //鼠标移入 aBstar[i].onmouseover=function(){ if(onOff) { num = this.index; aStxt.innerHTML = arrBtxt[num]; for (var i = 0; i <=this.index; i++) { aBstar[i].style.backgroundPosition = "0 0"; } } }; //鼠标移开 aBstar[i].onmouseout=function(){ if(onOff){//设定个开关,等开关为真就执行鼠标移除的代码 aStxt.innerHTML=""; for(var i=0;i<=this.index;i++){ aBstar[i].style.backgroundPosition="-39px 0"; } } }; //鼠标点击 aBstar[i].onclick=function(){ onOff=false;//开关为假就不执行鼠标移除的代码 //先清空 aStxt.innerHTML=""; for(var i=0;i<aBstar.length;i++){ aBstar[i].style.backgroundPosition="-39px 0"; } //点击当前星星,之前的都点亮包含自己 num = this.index ; aStxt.innerHTML=arrBtxt[num]; for(var i=0;i<=this.index;i++){ aBstar[i].style.backgroundPosition="0 0"; } }; } } </script>
代码运行效果如下:
分类:
js
标签:
原生js实现星级评分
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具