当前位置:首页 > CSS

css钟摆制作

2026-01-28 04:07:49CSS

CSS钟摆制作方法

使用CSS动画和transform属性可以创建简单的钟摆效果。以下是实现步骤:

HTML结构

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

CSS样式

.pendulum {
  position: relative;
  width: 200px;
  height: 300px;
  margin: 50px auto;
}

.string {
  position: absolute;
  width: 2px;
  height: 200px;
  background: #333;
  left: 50%;
  transform-origin: top center;
  animation: swing 2s infinite ease-in-out alternate;
}

.weight {
  position: absolute;
  width: 40px;
  height: 40px;
  background: #e74c3c;
  border-radius: 50%;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

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

优化钟摆效果

要使钟摆运动更自然,可以调整动画时间函数和角度:

@keyframes swing {
  0%, 100% {
    transform: rotate(-20deg);
    animation-timing-function: ease-out;
  }
  50% {
    transform: rotate(20deg);
    animation-timing-function: ease-in;
  }
}

添加物理效果

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

.string {
  animation: swing 1.5s infinite alternate;
  animation-timing-function: cubic-bezier(0.65, 0, 0.35, 1);
}

响应式调整

通过媒体查询使钟摆适应不同屏幕尺寸:

@media (max-width: 600px) {
  .pendulum {
    height: 200px;
  }
  .string {
    height: 150px;
  }
}

高级版本(带支架)

添加钟摆支架的完整版本:

css钟摆制作

<div class="pendulum-container">
  <div class="stand"></div>
  <div class="pendulum">
    <div class="string"></div>
    <div class="weight"></div>
  </div>
</div>
.pendulum-container {
  position: relative;
  width: 200px;
  height: 350px;
  margin: 0 auto;
}

.stand {
  width: 100px;
  height: 20px;
  background: #333;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}

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

相关文章

网页制作 css

网页制作 css

CSS 基础语法 CSS(层叠样式表)用于控制网页的样式和布局。基本语法由选择器和声明块组成: 选择器 { 属性: 值; } 例如设置段落文字颜色为红色: p { color: red;…

css制作导航栏

css制作导航栏

水平导航栏 使用 display: inline-block 或 flexbox 创建水平导航栏是最常见的方法。 <nav class="horizontal-nav"> <u…

css制作表格

css制作表格

CSS 制作表格的方法 使用 CSS 可以灵活地创建和样式化表格,以下是几种常见的方法: 使用 HTML 表格标签结合 CSS 样式 通过 HTML 的 <table>、<tr&g…

css动画制作

css动画制作

CSS动画基础语法 CSS动画通过@keyframes规则定义动画序列,结合animation属性实现动态效果。以下是一个基础示例: @keyframes example { 0% {bac…

css sprites制作

css sprites制作

CSS Sprites 制作方法 CSS Sprites 是一种将多个小图标或图片合并成一张大图的技术,通过减少 HTTP 请求提升网页加载性能。 准备工作 需要将多个小图标或图片合并为一张大图,可…

css制作下拉导航条

css制作下拉导航条

使用HTML和CSS创建基础下拉导航条 HTML结构需包含导航项和下拉内容容器: <nav class="navbar"> <ul> <li><…