星星评分的具体实现原理 如下代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
body,ul,li{
padding:0;
margin:0;
}
/* 把图片放到li里面 */
li{
list-style: none;
float:left;
height:28px;
width:27px;
background:url(img/star.gif) no-repeat 0 0;
}
</style>
</head>
<body>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<div id="tip"></div>
<script type="text/javascript">
let oList = document.querySelectorAll("li");
let oTip = document.getElementById("tip");
let flag = false; //开关
let curIndex = 0;
let arr =[1,2,3,4,5];
for(let i = 0;i<oList.length;i++){
oList[i].onmousemove = function(){
for(let j=0;j<oList.length;j++){
oList[j].style.backgroundPosition = "0 0";
}
//当前的和之前的要点亮
for(let j = 0;j<=i;j++){
oList[j].style.backgroundPosition = "0 -28px";
//鼠标移入的时候 亮星星上去
}
oTip.innerText = arr[i];
}
oList[i].onmouseout = function(){
for(let j = 0;j<oList.length;j++){
oList[j].style.backgroundPosition = "0 0";
//鼠标移出的时候 亮星星下去
}
oTip.innerText = "";
if(flag){
for(let j= 0;j<=curIndex;j++){
oList[j].style.backgroundPosition = "0 -28px";
}
oTip.innerText = arr[curIndex];
}
}
oList[i].onclick = function(){
flag = true;
curIndex = i;
}
}
</script>
</body>
大家有什么不清楚的地方一定要及时提出来 及时解决问题 欢迎大家一起讨论!! 相信自己是最棒的!O(∩_∩)O哈~