JavaScript实现五星动态评价功能详解

作者:函数茶馆时间:2026-10-29 13:30:21浏览:312

本文介绍如何使用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即可实现五星评价功能。由于篇幅限制,其他实现方式暂不展开,敬请关注本站后续更新,感谢支持。

作者最新文章