当前位置:首页 > CSS

css钟摆制作

2026-02-27 07:07:07CSS

CSS钟摆制作方法

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

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: #ff5722;
  border-radius: 50%;
  bottom: 0;
  left: 50%;
  margin-left: -20px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}

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

进阶优化技巧

增加物理感更强的钟摆效果可以通过调整动画曲线:

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

添加悬挂点装饰:

.pendulum::before {
  content: '';
  position: absolute;
  width: 20px;
  height: 20px;
  background: #333;
  border-radius: 50%;
  top: 0;
  left: 50%;
  margin-left: -10px;
}

响应式调整

使钟摆大小适应不同屏幕:

css钟摆制作

@media (max-width: 600px) {
  .pendulum {
    transform: scale(0.7);
  }
}

通过调整@keyframes中的角度值和动画持续时间,可以改变钟摆摆动的幅度和速度。增加transform-origin属性确保绳子从顶部中心点正确摆动。

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

相关文章

css 制作三角形

css 制作三角形

使用 CSS 制作三角形的方法 边框法(Border Method) 通过设置元素的宽高为0,并利用边框的透明属性来创建三角形。这是最常见且兼容性最好的方法。 向上三角形 .triangle-…

css奖状制作

css奖状制作

使用CSS制作奖状 奖状制作可以通过CSS结合HTML实现,适用于网页展示或打印。以下是几种常见的设计方法: 基础奖状结构 HTML框架用于定义奖状内容,CSS负责样式设计。 <div cl…

css网页制作

css网页制作

CSS 网页制作基础 CSS(层叠样式表)用于控制网页的视觉呈现,包括布局、颜色、字体等。以下为关键知识点和实用方法: 基本语法结构 CSS 规则由选择器和声明块组成: 选择器 { 属性: 值…

jquery css

jquery css

jQuery 操作 CSS 的方法 jQuery 提供了多种方法来操作元素的 CSS 样式,包括获取、设置、添加或移除样式。以下是常用的方法: 获取 CSS 属性值 使用 .css() 方法获取元素…

css怎么制作表格

css怎么制作表格

使用HTML和CSS制作表格 在HTML中,表格由<table>标签定义,结合CSS可以灵活控制样式。 基本HTML结构: <table> <tr>…

css制作详情页

css制作详情页

CSS 制作详情页的关键方法 布局与结构设计 使用 flexbox 或 grid 实现响应式布局。flexbox 适合单行或单列排列的内容,grid 适合复杂网格布局。 .container {…