原生js星の採点

4138 ワード

一番簡単な原生jsの星の採点を書きます.
<div id="rank" class="pingfen">
	<ul>
		<li></li>
		<li></li>
		<li></li>
		<li></li>
		<li></li>
	</ul>
	<p>   </p>
</div>
 
<style type="text/css">
	*{margin: 0;padding: 0;}
.pingfen{ width: 135px; margin:10px auto; height:20px; position: relative;}
.pingfen ul{height:20px; margin-bottom: 10px;}
.pingfen li{ width: 20px; float: left; height: 20px; cursor: pointer; background: url(star.png) no-repeat 0 0; list-style: none;}
.pingfen .active{background: url(star.png) no-repeat 0 -28px;}
.pingfen p{ position: absolute; top:24px; left: 0px; width: 134px; height: 28px; background: #fff; line-height: 28px; text-align: center; border:1px solid #333; display:none;}
</style>
 
<script>
var aData =["  ","  ","  ","  ","  "];

window.onload=function(){
	var oDiv = document.getElementById("rank");
	var aLi = oDiv.getElementsByTagName("li");
	var oP = oDiv.getElementsByTagName("p")[0];
	var i =0;
	for(i=0;i<aLi.length;i++){
		aLi[i].index = i;
			aLi[i].onmouseover = function(){
			oP.style.display = "block";
			oP.innerHTML=aData[this.index];
			for(i=0; i<=this.index;i++){
				aLi[i].className="active";
			}
		};
		aLi[i].onmouseout = function(){
			oP.style.display = "";
			for(i=0; i<aLi.length; i++){
				aLi[i].className="";
			}
		};
		aLi[i].onclick=function(){
			alert(this.index +1);
		};
	}

};
</script>
 
 
超簡単です.信じられないです.試してみてください.
 
 
コメントでは使えないと言っていますので、完全なコードを送ってください.実は上のコードは完全に分解されただけです.
以下は分割されていません.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>    </title>
<style type="text/css">
	*{margin: 0;padding: 0;}
.pingfen{ width: 135px; margin:10px auto; height:20px; position: relative;}
.pingfen ul{height:20px; margin-bottom: 10px;}
.pingfen li{ width: 20px; float: left; height: 20px; cursor: pointer; background: url(star.png) no-repeat 0 0; list-style: none;}
.pingfen .active{background: url(star.png) no-repeat 0 -28px;}
.pingfen p{ position: absolute; top:24px; left: 0px; width: 134px; height: 28px; background: #fff; line-height: 28px; text-align: center; border:1px solid #333; display:none;}
</style>

<script>
var aData =["  ","  ","  ","  ","  "];

window.onload=function(){
	var oDiv = document.getElementById("rank");
	var aLi = oDiv.getElementsByTagName("li");
	var oP = oDiv.getElementsByTagName("p")[0];
	var i =0;
	for(i=0;i<aLi.length;i++){
		aLi[i].index = i;
			aLi[i].onmouseover = function(){
			oP.style.display = "block";
			oP.innerHTML=aData[this.index];
			for(i=0; i<=this.index;i++){
				aLi[i].className="active";
			}
		};
		aLi[i].onmouseout = function(){
			oP.style.display = "";
			for(i=0; i<aLi.length; i++){
				aLi[i].className="";
			}
		};
		aLi[i].onclick=function(){
			alert(this.index +1);
		};
	}

};
</script>
</head>
<body>
	<div id="rank" class="pingfen">
		<ul>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
		</ul>
		<p>   </p>
	</div>
	
</body>
</html>