当前位置:首页 > CSS

css钟摆制作

2026-02-12 22:32:20CSS

CSS钟摆制作方法

使用CSS动画和关键帧可以实现钟摆效果,以下是具体实现步骤:

HTML结构

css钟摆制作

<div class="pendulum">
  <div class="string"></div>
  <div class="ball"></div>
</div>

CSS样式

.pendulum {
  position: relative;
  width: 2px;
  height: 200px;
  margin: 0 auto;
  transform-origin: top center;
  animation: swing 2s infinite alternate ease-in-out;
}

.string {
  width: 2px;
  height: 150px;
  background: #333;
  margin: 0 auto;
}

.ball {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #ff5722;
  position: absolute;
  bottom: 0;
  left: -14px;
}

@keyframes swing {
  0% {
    transform: rotate(30deg);
  }
  100% {
    transform: rotate(-30deg);
  }
}

优化钟摆效果

为了让钟摆运动更自然,可以调整动画时间和缓动函数:

css钟摆制作

animation: swing 1.5s infinite alternate cubic-bezier(0.37, 0, 0.63, 1);

添加物理效果

模拟真实钟摆的重力加速度效果:

@keyframes swing {
  0%, 100% {
    transform: rotate(20deg);
    animation-timing-function: cubic-bezier(0.5, 0.05, 0.8, 0.5);
  }
  50% {
    transform: rotate(-20deg);
    animation-timing-function: cubic-bezier(0.2, 0.5, 0.5, 1);
  }
}

多钟摆组合

创建多个同步摆动的钟摆:

.pendulum:nth-child(1) {
  animation-delay: 0s;
}
.pendulum:nth-child(2) {
  animation-delay: 0.2s;
}
.pendulum:nth-child(3) {
  animation-delay: 0.4s;
}

这些方法可以创建出不同风格的CSS钟摆效果,通过调整参数可以获得不同的摆动速度和幅度。

标签: 钟摆css
分享给朋友:

相关文章

css动画制作

css动画制作

CSS动画制作方法 使用@keyframes规则定义动画序列,通过animation属性将动画应用到元素上。以下是一个基础示例: @keyframes fadeIn { from { opaci…

css如何制作三角形

css如何制作三角形

使用 border 属性制作三角形 通过设置元素的 border 属性,利用边框的透明特性可以创建三角形。将一个元素的宽度和高度设为 0,然后通过设置不同方向的边框宽度和颜色来实现。 .triang…

使用css制作钢琴块

使用css制作钢琴块

使用 CSS 制作钢琴块 钢琴块通常由黑白键交替排列组成,可以通过 HTML 和 CSS 实现。以下是实现钢琴块的步骤: HTML 结构 创建一个包含黑白键的容器,使用 <div> 元素…

css怎么制作评论框

css怎么制作评论框

制作评论框的CSS方法 评论框通常包含输入区域、提交按钮和样式设计。以下是实现评论框的CSS代码示例和设计要点。 HTML结构 <div class="comment-box">…

css如何制作六边形

css如何制作六边形

使用CSS制作六边形 六边形可以通过CSS的clip-path属性或伪元素结合旋转和定位来实现。以下是两种常见方法: 方法一:使用clip-path属性 clip-path允许直接裁剪元素为六边形形…

css尾部制作

css尾部制作

如何制作CSS尾部(页脚) 固定定位法 将页脚固定在页面底部,无论内容多少。使用position: fixed结合bottom: 0实现: footer { position: fixed;…