本文介绍如何使用JavaScript实现五星动态评价功能。通过监听鼠标移入与点击事件,动态改变星星图标显示状态,支持悬停预览与点击确认选择。提供完整HTML结构与JS逻辑代码,适合前端初学者参考学习。
五星评价功能效果展示
首先展示最终实现的视觉效果,如图所示。

您可以点击链接查看在线演示或下载完整源码。
JavaScript核心逻辑实现
接下来是核心的JavaScript逻辑实现部分。
var spans=document.getElementsByTagName("span");
var flag=5;//这个值随便取,只要不是01234就行
var Expand=function(){
//扩展代码,暂无
};
onload=function(){
//循环载入鼠标移入事件
for(var i=0;i<spans.length;i++){
spans[i].onmouseover=function(){
var id=parseInt(this.id);
for(var i=0;i<=id;i++){
spans[i].innerHTML="★";
}
for(var j=id+1;j<5;j++){
spans[j].innerHTML="☆";
}
};
}
//循环载入鼠标点击星星事件
for(var i=0;i<spans.length;i++){
spans[i].onclick=function(){
var id=parseInt(this.id);
flag=id;
for(var i=0;i<=id;i++){
spans[i].innerHTML="★";
}
Expand();//这里是鼠标点击星星的扩展,例如出现分值之类的,总之要扩展什么随你的大小便啦~
};
}
//载入鼠标离开div事件
document.getElementById("div").onmouseout=function(){
//如果tag是3,则循环给把0 1 2 3几个星星整黄
if(flag>=0 && flag<=4){
for(var i=0;i<=flag;i++){
spans[i].innerHTML="★";
}
for(var j=flag+1;j<5;j++){
spans[j].innerHTML="☆";
}
}
//如果tag没有值或者是初值5,则把所有的星星还原成空星星
else{
for(var i=0;i<spans.length;i++){
spans[i].innerHTML="☆";
}
}
};
};
HTML结构代码说明
以下是HTML结构中对应的代码片段。
<div id="div">
<span id="0">☆</span><span id="1">☆</span><span id="2">☆</span><span id="3">☆</span><span id="4">☆</span>
</div>
上述代码结构清晰,利用JavaScript即可实现五星评价功能。由于篇幅限制,其他实现方式暂不展开,敬请关注本站后续更新,感谢支持。