css滑动星星评分,纯css3滑动星星打分动画特效
时间: 2023-07-27 15:29:25 浏览: 99
好的,我可以为您提供一种纯CSS3实现的滑动星星评分动画特效的方法。具体步骤如下:
1.首先,我们需要准备一个HTML页面,其中包括一个具有唯一标识符的div元素,用于容纳我们的星星评分系统:
```html
<div id="rating">
<div class="star"></div>
<div class="star"></div>
<div class="star"></div>
<div class="star"></div>
<div class="star"></div>
</div>
```
2.接下来,我们需要为每个星星创建一个伪元素,并将它们附加到星星容器上,以实现星星的外观。我们可以使用font-awesome字体库中的星星图标,也可以使用其他方法。
```css
#rating .star:before {
content: '\f005';
font-family: 'FontAwesome';
color: #ccc;
font-size: 2em;
display: inline-block;
margin-right: 5px;
}
```
3.接下来,我们需要为星星容器设置一些基本样式,以便它们可以水平排列并与彼此相邻。我们还需要为星星容器设置一个相对定位,以便在用户悬停时可以更改星星的颜色。
```css
#rating {
display: inline-block;
position: relative;
font-size: 0;
}
#rating .star {
display: inline-block;
margin: 0;
padding: 0;
cursor: pointer;
}
```
4.现在,我们需要使用CSS3的transition属性将星星的颜色更改为悬停时的颜色。我们可以使用:hover伪类来为星星容器中的每个星星设置颜色。
```css
#rating .star:hover:before,
#rating .star:hover ~ .star:before {
color: gold;
}
```
5.最后,我们需要使用JavaScript为星星容器添加点击事件,以便在用户单击星星时更改星星的颜色。我们可以使用classList.toggle()方法来切换星星元素的类名。
```javascript
const stars = document.querySelectorAll('.star');
stars.forEach(function(star, index) {
star.addEventListener('click', function() {
for (let i = 0; i < stars.length; i++) {
if (i <= index) {
stars[i].classList.add('selected');
} else {
stars[i].classList.remove('selected');
}
}
});
});
```
这样,我们就完成了一个基本的纯CSS3滑动星星评分动画特效。您可以根据需要更改样式,以实现更高级的外观和交互效果。
阅读全文