首页 > 其他分享 >趣味!HTML&CSS 让小球在木棍上舞动起来

趣味!HTML&CSS 让小球在木棍上舞动起来

时间:2024-11-01 16:20:17浏览次数:3  
标签:动画 ball 状物 小球 像素 HTML 5px CSS

效果演示

这段代码通过HTML和CSS创建了一个带有动画效果的小球在条状物上移动的场景,小球和条状物都有各自的动画,通过CSS动画和伪元素实现了较为生动的效果。

HTML

<div class="bar">
    <div class="ball"></div>
</div>
  • bar:外层容器,代表一个条状物,可能是某种轨道或背景元素。
  • ball:小球元素,放置在条状物内部。

CSS

.ball {
  position: relative;
  bottom: 50px;
  left: calc(100% - 20px);
  width: 50px;
  height: 50px;
  background: #fff;
  border-radius: 50%;
  animation: ball-move8234 3s ease-in-out 1s infinite alternate;
}

.ball::after {
  position: absolute;
  content: '';
  top: 25px;
  right: 5px;
  width: 5px;
  height: 5px;
  background: #000;
  border-radius: 50%;
}

.bar {
  width: 200px;
  height: 12.5px;
  background: #FFDAAF;
  border-radius: 30px;
  transform: rotate(-15deg);
  animation: up-down6123 3s ease-in-out 1s infinite alternate;
}

@keyframes up-down6123 {
  from {
    transform: rotate(-15deg);
  }

  to {
    transform: rotate(15deg);
  }
}

@keyframes ball-move8234 {
  from {
    left: calc(100% - 40px);
    transform: rotate(360deg);
  }

  to {
    left: calc(0% - 20px);
    transform: rotate(0deg);
  }
}
  • .ball类:position: relative;设置小球相对定位,以便进行进一步的位置调整。bottom: 50px;将小球从其正常位置向下移动 50 像素。left: calc(100% - 20px);将小球放置在距离父容器右侧边缘 20 像素的位置。width: 50px; height: 50px;设置小球的大小为 50 像素宽和高。background: #fff;设置小球的背景颜色为白色。border-radius: 50%;使小球成为圆形。animation: ball-move8234 3s ease-in-out 1s infinite alternate;为小球应用名为ball-move8234的动画,动画持续时间为 3 秒,具有缓入缓出效果,延迟 1 秒开始,无限循环且交替播放不同方向。
  • .ball::after伪元素:在小球上创建一个黑色的小圆点,用于装饰或模拟某种特征。position: absolute;绝对定位在小球内部。content: ‘’;用于创建伪元素,不包含实际内容。top: 25px; right: 5px;设置伪元素在小球内部的位置。width: 5px; height: 5px;设置伪元素的大小为 5 像素宽和高。background: #000;设置伪元素的背景颜色为黑色。border-radius: 50%;使伪元素成为圆形。
  • .bar类:width: 200px; height: 12.5px;设置条状物的宽度为 200 像素,高度为 12.5 像素。background: #FFDAAF;设置条状物的背景颜色为浅橙色。border-radius: 30px;使条状物的两端具有一定的圆角。transform: rotate(-15deg);将条状物逆时针旋转 15 度。animation: up-down6123 3s ease-in-out 1s infinite alternate;为条状物应用名为up-down6123的动画,动画持续时间为 3 秒,具有缓入缓出效果,延迟 1 秒开始,无限循环且交替播放不同方向。
  • @keyframes up-down6123:定义条状物的动画,从初始状态(逆时针旋转 15 度)到最终状态(顺时针旋转 15 度)进行过渡。
  • @keyframes ball-move8234:定义小球的动画,从初始位置(距离父容器右侧边缘 40 像素且旋转 360 度)到最终位置(距离父容器左侧边缘 20 像素且不旋转)进行过渡。

标签:动画,ball,状物,小球,像素,HTML,5px,CSS
From: https://blog.csdn.net/weixin_52814911/article/details/143430115

相关文章