在JavaScript中实现鼠标悬停显示星星(通常用于评分或点赞功能)的功能,可以通过HTML、CSS和JavaScript结合来完成。下面是一个简单的示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mouse Star Example</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="star-rating">
<span class="star" data-value="1">★</span>
<span class="star" data-value="2">★</span>
<span class="star" data-value="3">★</span>
<span class="star" data-value="4">★</span>
<span class="star" data-value="5">★</span>
</div>
<script src="script.js"></script>
</body>
</html>
.star-rating {
display: flex;
font-size: 2em;
cursor: pointer;
}
.star {
color: grey;
transition: color 0.2s;
}
.star.filled {
color: gold;
}
document.addEventListener('DOMContentLoaded', function() {
const stars = document.querySelectorAll('.star');
stars.forEach(star => {
star.addEventListener('mouseover', function() {
const value = this.getAttribute('data-value');
highlightStars(value);
});
star.addEventListener('mouseout', function() {
resetStars();
});
star.addEventListener('click', function() {
const value = this.getAttribute('data-value');
// 这里可以添加代码将评分发送到服务器
console.log(`Star rating: ${value}`);
});
});
function highlightStars(value) {
stars.forEach(star => {
if (star.getAttribute('data-value') <= value) {
star.classList.add('filled');
} else {
star.classList.remove('filled');
}
});
}
function resetStars() {
stars.forEach(star => {
star.classList.remove('filled');
});
}
});
data-value
属性,表示其评分值。.filled
类用于高亮显示选中的星星。highlightStars
函数根据鼠标悬停的星星值高亮显示相应的星星。resetStars
函数在鼠标移出时重置所有星星的样式。这个示例展示了如何使用JavaScript实现一个简单的鼠标悬停显示星星的功能。你可以根据需要进一步扩展和定制这个功能。
没有搜到相关的文章