let textArr = ["很差", "较差", "一般", "满意", "非常满意"];
let starEle = document.getElementsByClassName("star")[0];
let textEle = document.getElementsByClassName("text")[0];
let imgIndex = -1;
function createStar(num) {
let str = "";
for (let i = 0; i < num; i++) {
str += `<img src="./starimg/empty.png" alt=${i}>`;
}
starEle.innerHTML = str;
}
createStar(5);
starEle.addEventListener("mouseover", e => {
let event = e || window.event;
let imgEles = clearStar();
if (event.target.localName == "img") {
imgEles.filter((item, index) => index <= e.target.alt).map(item => item.src = "./starimg/shining.png");
textEle.innerText = textArr[e.target.alt];
}
});
starEle.addEventListener("mouseout", e => {
let imgEles = clearStar();
if (imgIndex >= 0 && imgIndex < imgEles.length) {
imgEles.filter((item, index) => index <= imgIndex).map(item => item.src = "./starimg/shining.png");
textEle.innerText = textArr[imgIndex];
}
});
function clearStar() {
let imgEles = document.getElementsByTagName("img");
[...imgEles].map(item => { item.src = "./starimg/empty.png"; });
textEle.innerText = "";
return [...imgEles];
}
starEle.addEventListener("click", e => {
let event = e || window.event;
if (event.target.localName == "img") {
imgIndex = event.target.alt;
}
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="./index.css">
</head>
<body>
<article>
<section class="star"> </section>
<section class="text"></section>
</article>
<script src="./index2.js"></script>
</body>
</html>