当前位置:首页 > CSS

css 动画制作星星

2026-04-01 23:54:57CSS

使用CSS动画制作星星

方法一:使用纯CSS创建五角星

通过CSS的clip-path属性可以创建五角星形状,结合动画实现闪烁效果。

css 动画制作星星

.star {
  width: 50px;
  height: 50px;
  background-color: gold;
  clip-path: polygon(
    50% 0%, 
    61% 35%, 
    98% 35%, 
    68% 57%, 
    79% 91%, 
    50% 70%, 
    21% 91%, 
    32% 57%, 
    2% 35%, 
    39% 35%
  );
  animation: twinkle 1s infinite alternate;
}

@keyframes twinkle {
  from { opacity: 0.3; }
  to { opacity: 1; }
}

方法二:使用伪元素创建复杂星星

通过::before::after伪元素叠加,实现更丰富的星星效果。

css 动画制作星星

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

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

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

方法三:旋转动画实现星光效果

通过旋转和缩放变换创建动态星光。

.shining-star {
  width: 30px;
  height: 30px;
  background: radial-gradient(circle, gold 40%, transparent 50%);
  animation: shine 2s ease-in-out infinite;
}

@keyframes shine {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.2) rotate(180deg); }
  100% { transform: scale(1) rotate(360deg); }
}

方法四:多星星随机动画

创建多个星星并应用不同的动画延迟。

.star-group {
  display: flex;
  gap: 20px;
}

.star-item {
  width: 20px;
  height: 20px;
  background-color: gold;
  clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
  animation: pulse 1.5s infinite;
}

.star-item:nth-child(2) { animation-delay: 0.3s; }
.star-item:nth-child(3) { animation-delay: 0.6s; }

@keyframes pulse {
  0%, 100% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.3); opacity: 1; }
}

注意事项

  1. 浏览器兼容性:clip-path属性在现代浏览器中支持良好,但在旧版IE中不兼容
  2. 性能优化:减少同时运行的复杂动画数量,避免页面卡顿
  3. 响应式设计:使用相对单位(如vw、em)使星星尺寸适应不同屏幕
  4. 颜色选择:可以使用CSS变量方便地调整星星颜色

这些方法可以单独使用,也可以组合创造出更复杂的星空效果。通过调整动画参数如持续时间、延迟和关键帧,可以实现各种不同的视觉效果。

分享给朋友:

相关文章

vue实现星星评价

vue实现星星评价

实现星星评价组件 在Vue中实现星星评价功能,可以通过自定义组件完成。以下是一个完整的实现方案: 创建星星评价组件 新建一个StarRating.vue文件,包含以下代码: <templat…

css动画制作步骤

css动画制作步骤

CSS动画制作步骤 关键帧定义 使用@keyframes规则定义动画序列,指定动画在不同时间点的样式状态。例如: @keyframes fadeIn { 0% { opacity: 0; }…

css动画制作效果

css动画制作效果

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

css路径动画制作

css路径动画制作

CSS路径动画制作方法 CSS路径动画可以通过offset-path和animation属性实现元素沿自定义路径运动。现代浏览器支持SVG路径或CSS基本形状作为运动轨迹。 定义路径 使用SVG路径…

css3 动画制作

css3 动画制作

CSS3 动画制作基础 CSS3 动画通过 @keyframes 规则和 animation 属性实现。定义关键帧后,将其绑定到元素上,设置持续时间、延迟、循环方式等参数。 @keyframes s…

css3前端动画制作

css3前端动画制作

CSS3 前端动画制作方法 使用 transition 制作过渡动画 transition 用于在元素状态变化时添加平滑过渡效果。可以定义过渡的属性、持续时间、延迟时间和速度曲线。 .box {…