当前位置:首页 > CSS

css 动画制作星星

2026-03-12 03:51:11CSS

使用 CSS 动画制作星星

创建星星形状

通过 CSS 的 ::before::after 伪元素结合 transform 属性生成五角星形状。以下是一个基础的星星样式代码:

css 动画制作星星

.star {
  position: relative;
  width: 0;
  height: 0;
  border-right: 50px solid transparent;
  border-bottom: 35px solid gold;
  border-left: 50px solid transparent;
  transform: rotate(35deg);
}

.star::before {
  content: '';
  position: absolute;
  top: -25px;
  left: -50px;
  width: 0;
  height: 0;
  border-right: 50px solid transparent;
  border-bottom: 35px solid gold;
  border-left: 50px solid transparent;
  transform: rotate(-70deg);
}

添加闪烁动画

通过 @keyframes 定义透明度变化实现闪烁效果,并将其应用到星星上:

css 动画制作星星

@keyframes twinkle {
  0%, 100% { opacity: 0.2; }
  50% { opacity: 1; }
}

.star {
  animation: twinkle 2s infinite alternate;
}

随机分布多个星星

使用 CSS 变量和 nth-child 为多个星星设置不同的位置、大小和动画延迟:

.stars-container {
  position: relative;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
}

.star {
  position: absolute;
  animation-delay: calc(var(--delay) * 1s);
  left: calc(var(--x) * 1%);
  top: calc(var(--y) * 1%);
  transform: scale(var(--size)) rotate(35deg);
}

/* 示例:HTML 中通过 style 属性为每个星星设置变量 */
<div class="stars-container">
  <div class="star" style="--x: 20; --y: 30; --size: 0.8; --delay: 0.3"></div>
  <div class="star" style="--x: 70; --y: 50; --size: 1.2; --delay: 1.1"></div>
</div>

进阶效果:旋转星星

添加旋转动画使星星更生动:

@keyframes spin {
  from { transform: rotate(0deg) scale(var(--size)); }
  to { transform: rotate(360deg) scale(var(--size)); }
}

.star {
  animation: 
    twinkle 2s infinite alternate,
    spin 10s linear infinite;
}

注意事项

  • 使用 vw/vh 单位确保星星在不同屏幕尺寸下适配。
  • 通过调整 border 的宽度和颜色可以改变星星的锐利度和颜色。
  • 减少动画性能消耗:避免过多同时运行的复杂动画,优先使用 opacitytransform 属性。

分享给朋友:

相关文章

css动画制作图片

css动画制作图片

CSS动画制作图片的方法 使用CSS动画可以为图片添加各种动态效果,如旋转、缩放、淡入淡出等。以下是几种常见的CSS动画实现方式。 基础动画实现 通过@keyframes定义动画序列,并将其应用到图…

css 动画制作

css 动画制作

CSS 动画基础 CSS 动画通过 @keyframes 和 animation 属性实现。@keyframes 定义动画关键帧,animation 控制动画的播放方式。 定义一个简单的动画: @…

动画制作css

动画制作css

使用 CSS 制作动画 CSS 动画可以通过 @keyframes 规则和 animation 属性实现,适用于元素的状态变化、过渡效果等。以下是实现 CSS 动画的核心方法: 定义关键帧动…

css动画制作效果

css动画制作效果

CSS 动画基础语法 CSS 动画通过 @keyframes 规则定义动画序列,再通过 animation 属性将动画应用到元素上。 定义关键帧: @keyframes slideIn {…

vue实现简单星星评分

vue实现简单星星评分

实现星星评分组件 在Vue中实现星星评分功能,可以通过组件化的方式完成。以下是一个简单的实现方案: <template> <div class="star-rating">…

css3动画制作

css3动画制作

CSS3 动画基础 CSS3 动画通过 @keyframes 规则和 animation 属性实现。@keyframes 定义动画关键帧,animation 控制动画播放方式。 定义关键帧 @k…