分享

js星星打分效果详解

 竹林书屋@ 2012-04-14

很多网站都有如下图这样的星星打分效果,今天就看下用js怎么实现打分效果。

 \

 

效果详解
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>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约