当前位置:首页 > CSS

css钟摆制作

2026-02-27 07:07:07CSS

CSS钟摆制作方法

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

HTML结构

css钟摆制作

<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);
  }
}

进阶优化技巧

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

css钟摆制作

@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;
}

响应式调整

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

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

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

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

相关文章

css制作导航条

css制作导航条

导航条的基本结构 使用HTML的<nav>标签和<ul>列表创建导航条的基本结构。导航项通常包含链接,示例代码如下: <nav> <ul>…

纯css制作tab菜单

纯css制作tab菜单

纯CSS制作Tab菜单的方法 使用radio input控制切换 通过<input type="radio">和<label>元素配合实现无JavaScript的Tab切换效果…

css 制作报表

css 制作报表

CSS 制作报表的方法 使用 CSS 制作报表主要涉及表格样式的设计、布局优化以及响应式处理。以下是几种常见的方法和技巧: 基础表格样式 通过 CSS 可以增强 HTML 表格的视觉效果,使其更符合…

css制作扇形图

css制作扇形图

使用CSS制作扇形图 方法一:使用clip-path和transform 通过CSS的clip-path和transform属性可以快速实现扇形效果。定义一个圆形元素,然后裁剪出扇形部分。 .fan…

css怎么制作表单

css怎么制作表单

基础表单结构 使用HTML创建表单元素,搭配CSS进行样式设计。表单通常包含<form>标签及输入控件(如<input>、<textarea>、<select…

css如何制作圆

css如何制作圆

使用 border-radius 属性 通过设置 border-radius 属性可以轻松创建圆角或圆形元素。值为 50% 时,元素会呈现为圆形。 .circle { width: 100p…