JavaScript 实现星级评分交互效果

作者:白露时间:2026-10-29 08:21:38浏览:210

本文详细介绍如何使用 JavaScript 实现常见的星级打分功能。通过监听鼠标移入、移出及点击事件,动态切换星星的亮暗状态并显示对应文字。代码包含 HTML 结构、CSS 样式及 JS 逻辑,完整保留关键参数与操作细节,适合前端开发参考。

JavaScript 星级评分实现概述

本文介绍一种使用 JavaScript 实现星级评分效果的具体方法,供读者参考学习。

许多网站采用如图所示的星级评分界面,接下来将解析如何利用 JavaScript 实现该交互效果。

JavaScript 星级评分实现概述

交互逻辑与代码实现

功能逻辑说明: 1. 鼠标悬停时星星高亮显示,下方同步显示对应文字;鼠标移开后星星恢复灰色,文字隐藏。 2. 当鼠标悬停在某颗星星上时,该星星及其之前的所有星星均呈现点亮状态。 3. 鼠标点击某颗星星后,系统将显示最终的评分结果。 具体实现代码如下:


<!doctype html>
<html>
<head>
 <meta charset="gbk"> 
 <title>切换</title>
 <style>
.wrapper{width:300px; margin:10px auto; font:14px/1.5 arial;}
/*tab*/
#star{overflow:hidden;}
#star li{
float:left;
width:20px;
height:20px;
margin:2px;
display:inline;
color:#999;
font:bold 18px arial;
cursor:pointer
}
#star .act{
color:#c00
}
#star_word{
width:80px;
height:30px;
line-height:30px;
border:1px solid #ccc;
margin:10px;
text-align:center;
display:none
}
</style>
<script>
window.onload = function(){
 var star = document.getElementById("star");
 var star_li = star.getElementsByTagName("li");
 var star_word = document.getElementById("star_word");
 var result = document.getElementById("result");
 var i=0;
 var j=0;
 var len = star_li.length;
 var word = ['很差','差','一般',"好","很好"]
 for(i=0; i<len; i++){
 star_li[i].index = i;
 star_li[i].onmouseover = function(){
 star_word.style.display = "block";
 star_word.innerHTML = word[this.index];
 for(i=0; i<=this.index; i++){
  star_li[i].className = "act";
 }
 }
 star_li[i].onmouseout = function(){
 star_word.style.display = "none";
 for(i=0; i<len; i++){
  star_li[i].className = "";
 }
 }
 star_li[i].onclick = function(){
 result.innerHTML = (this.index+1)+"分";
 }
 }
}
</script>
</head>
<body>
<div class="wrapper">
打分结果 
<span id="result"></span>
<ul id="star">
<li>★</li>
<li>★</li>
<li>★</li>
<li>★</li>
<li>★</li>
</ul>
<div id="star_word">一般</div>
</div> 
</body> 
</html>

希望上述内容对 JavaScript 编程实践有所帮助。

作者最新文章