纯css实现坤坤经典动作-“铁山靠”

news2024/10/1 1:30:18

背景

2023年2月16日,晴,今天没有工作,一直在掘金摸鱼,摸的我好累。
不行!我得找点有意义的事情做!
此时间,我发的一条沸点竟然有小黑子给我评论,\

image.png

image.png

我看到之后气不打一处来,哥哥这么努力,还有这么多人黑我家哥哥,
so!!! 我打算为哥哥正名!

作为工作时间一坤年的ikun,我要尽我的绵薄之力还原哥哥的舞姿!
让你们臣服!

开搞

1. 构思

  1. 选择题材阶段,我毫不犹豫决定实现坤坤的经典“铁山靠”动作;

image.png

  1. 然后就是思考怎么实现了,定几个要实现的关键要素;
  2. 实现帅气中分发型;
  3. 实现身着背带裤的潇洒身型;
  4. 实现铁山靠动作;
  5. 优化细节。

代码就不往文章里贴了,最后直接在码上掘金在线看吧-.-

2. 绘制帅气的中分发型

  • 先画个头,设置弧度border-radius:50%画个圆将就一下;
  • 所有头发颜色,裤子颜色,皮肤颜色,都是用浏览器自带的取色器从坤坤的图片上吸的颜色;

image.png

  • 中分发型分为两瓣儿,用两个div设置border-radius实现,border-dadius可以设置八个位置的弧度。写法如:
 border-radius: 65px 21px 76px 14px / 90px 17px 111px 26px;
//分别设置的是  左上 右上 右下 左下 / 左上 右上 右下 左下 的弧度
  • 颜色设置个灰色渐变色
background-image: linear-gradient(to right, lightgrey, grey);

image.png

3. 绘制背带裤造型

  • 先画个长方形div当身体,背景色设置为黑色,背带我懒得画了,直接写个大写Y代替背带了(没想到效果还不错);
  • 然后绘制胳膊和腿,由于考虑身体是主体,所以头,四肢都相对于身体定位;
  • 把所有元素都塞身体里,给个id为“kun”因为坤坤是唯一的!所以要用id选择器!
  • 利用position: absolute设置胳膊腿的位置,然后用transform: rotate()对四肢进行选择调节姿势,在这之前要用transform-origin: center top;设置好四肢的旋转基点。
  • 胳膊的大小胳膊大胳膊用div,小胳膊用这个div的:after伪元素实现
<div id="kun">
      <div class="arms">
        <div class="arm arm-l"></div>
        <div class="arm arm-r"></div>
      </div>
      
      <div class="leg leg-l"></div>
      <div class="leg leg-r"></div>
</div>
.arm{
  background-color: #333;
  position: absolute;
  top: 10px;
  z-index: 1;
  transform-origin: center top;
  width: 30px;
  height: var(--armLength);
  &-l{
    left: 0;
    transform: rotate(50deg);
    border-radius: 0 0 30px 30px;
    &::after{
      content: '';
      position: absolute;
      width: 26px;
      height: 80px;
      border-radius: 0 0 30px 30px;
      background-color: #333;
      left: 0;
      bottom: -70px;
      transform-origin: center top;
      transform: rotate(-100deg);
    }
  }
  &-r ...
}

image.png

4. 实现铁山靠动作

  • 精心打磨铁山靠的动作要领,采集每一帧的动画定格

image.png

  • 由于每次变化都是不规则多边形,我考虑了三种实现方式
  • transform: skew() rotate()
  • border实现
  • clip-path实现
  • 最后考虑方便调试,以及可以实现更自由的图形,选择了用clip-path实现
  • 由于身体用clip-path实现动画过程,占用的位置不会变化,所以胳膊也不会跟着身体摆动,所以我得单独处理胳膊的动画,通过设置间距和位置体现跟着身体晃动的效果。
//头动画 
@keyframes headmove {
  25% {
    bottom: 210px;
  }
  50% {
    bottom: 195px;
  }
  75% {
   bottom: 170px;
  }
}
// 胳膊动画
@keyframes armmove {
  25% {
    width: 92%;
    top: 60px;
    left: 11%;
  }
  50% {
    width: 72%;
    top: 66px;
    left: 12%;
  }
  75% {
    width: 81%;
    top: 80px;
    left: 14%;
  }
}

//身体动画
@keyframes bodymove {
  25% {
    -webkit-clip-path: polygon(23% 13%, 100% 0%, 75% 100%, 0% 100%);
    clip-path: polygon(23% 13%, 100% 0%, 75% 100%, 0% 100%);
  }
  50% {
    -webkit-clip-path: polygon(17% 16%, 63% 29%, 75% 100%, 0% 100%);
    clip-path: polygon(17% 16%, 63% 29%, 75% 100%, 0% 100%);
  }
  75% {
    -webkit-clip-path: polygon(24% 27%, 90% 38%, 75% 100%, 0% 100%);
    clip-path: polygon(24% 27%, 90% 38%, 75% 100%, 0% 100%);
  }
}

image.png

5. 细节调整

  • 粗略的实现后,四肢的位置显然狠尴尬。
  • 打开控制台,选中身体,用animation-play-state: paused;将身体分别暂停在不同的关键帧位置,然后慢慢微调四肢位置
  • 设置背景

image.png

大功告成!!

6. 成果展示

jcode

免责声明!

我是真的ikun
背歌为证

迎面走来的你让我如此蠢蠢欲动*
这种感觉我从未有
Cause I got a crush on you who you
你是我的我是你的谁
再多一眼看一眼就会爆炸
再近一点靠近点快被融化

本文代码仅供娱乐,不存在任何歧视,不存在任何造谣污蔑。如果冒犯,请私信我,我会苏珊!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/353015.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1v1游戏互动,接入社交场景(内含接入方法)

游戏的需求洞察 许多互联网产品想要拓宽功能领域&#xff0c;纷纷选择进入小游戏赛道&#xff0c;试图从新颖有趣的方向深度触达用户&#xff0c;提高产品的活跃度和留存。群玩洞察了这一需求&#xff0c;还发现海外用户也对1v1互动游戏感兴趣&#xff0c;于是开始做这类游戏的…

中国人寿业务稳定性保障:“1+1+N” 落地生产全链路压测

引言 保险业务的数字化转型正如火如荼地进行&#xff0c;产品线上化、投保线上化、承保线上化、核保线上化等业务转型&#xff0c;导致系统的应用范围不断扩大&#xff0c;用户的高频访问也正在成为常态。同时&#xff0c;系统复杂性也呈指数上升&#xff0c;这些因素都增加了…

3.InfluxDB WEB使用

结合telegraf做指标数据收集 点击 Load Data -> Telegraf 配置界面 influxDB支持在WEB-UI中生成配置文件 然后利用telegraf通过远程URL请求的方式进行获取 点击CREATE CONFIGURATION 创建telegraf配置文件 选择Bucket InfluxDB提供了很多配置好的监控模板供用户选择 可以…

分享112个HTML旅游交通模板,总有一款适合您

分享112个HTML旅游交通模板&#xff0c;总有一款适合您 112个HTML旅游交通模板下载链接&#xff1a;https://pan.baidu.com/s/15OctJIB4NtyFddyalXX70A?pwd7tpa 提取码&#xff1a;7tpa Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 响应式旅游度假HTML5模板…

学会开发自己的Python AI应用【OpenAI API篇】

最近 OpenAI 宣布 ChatGPT 将很快推出他们的 API。虽然我们不知道这需要多长时间&#xff0c;但这之前我们可以熟悉下OpenAI API&#xff0c;快速开发自己的AI应用&#xff01;通过今天学习 OpenAI API&#xff0c;你将能够访问 OpenAI 的强大模型&#xff0c;例如用于自然语言…

动态生成复选框列表弹性盒子

效果图 1.准备一块盒子区域 id“checkBoxList” 为例 //样式的简单介绍 style{ overflow:scroll; //让超出div 内容在div区域内以滚动条形式呈现 display: flex; //搞一个弹性盒子容器 flex-wrap: wrap;align-content: flex-start; // 文本对齐方式 这里是上下元素的内容对齐…

【论文Word排版】使用多级列表设置论文序号

在Word中对论文进行排版 1.设置章节前面的序号 1.1 需求 通常情况下要求如下 一级标题“第一章 XXX”&#xff0c;然后是“1.1 研究意义”&#xff0c; “1.2 研究现状” 之前的处理方式都是手打&#xff0c;并没有借助word的多级列表实现。这次趁着写毕业论文研究了一下。…

虹科案例 | Redis企业版数据库帮助金融机构满足客户需求

传统银行无法提供无缝的全渠道客户体验、无法实时检测欺诈、无法获得业务洞察力、用户体验感较差、品牌声誉受损和业务损失&#xff1f;虹科提供的Redis企业版具有低延迟、高吞吐和高可用性特征&#xff0c;使用Redis企业版数据库&#xff0c;金融机构可以实现即时的客户体验、…

搭建Hexo博客-第3章-Markdown语言介绍及编辑博客

搭建Hexo博客-第3章-Markdown语言介绍及编辑博客 搭建Hexo博客-第3章-Markdown语言介绍及编辑博客 搭建Hexo博客-第3章-Markdown语言介绍及编辑博客 大家好&#xff0c;如果你按照上一篇文章的内容安装并部署了博客&#xff0c;那么现在在你的主页上应该有一篇 Hello World&…

工业上为什么要使用Io-Link?

工业上为什么要使用Io-Link&#xff1f;IO-Link是一种通讯技术&#xff0c;可以把传统的硬件从单纯的输入输出转变为可配置、可编程的网络设备。它可以大大减少有线连接&#xff0c;改善机器人控制和过程控制系统的可读性和可维护性&#xff0c;实现智能化的装置。使用IO-Link可…

科技云报道:2023,云计算的风向变了

科技云报道原创。 2022&#xff0c;是云计算的“分水岭”之年。 与前两年的火热相比&#xff0c;2022年云计算行业实属不太好过&#xff1a;阿里云一季度营收增速创出历史新低&#xff0c;腾讯云的市场份额也被后来者华为云反超&#xff0c;沦为第三。 在此情形下&#xff0c…

rabbitmq菜鸟教程,搭建rabbitmq

一、前言RabbitMQ是一个开源的遵循 AMQP协议实现的基于 Erlang语言编写&#xff0c;即需要先安装部署Erlang环境再安装RabbitMQ环境。需加注意的是&#xff0c;读者若不想跟着我的版本号下载安装&#xff0c;可根据两者版本号的对应表&#xff08;下面图示只展示了部分&#xf…

Git(GitHub,Gitee 码云,GitLab)详细讲解

目录第一章 Git 概述1.1 何为版本控制1.2 为什么需要版本控制1.3 版本控制工具1.4 Git 简史1.5 Git 工作机制1.6 Git 和代码托管中心第二章 Git 安装第三章 Git 常用命令3.1 设置用户签名3.2 初始化本地库3.3 查看本地库状态3.3.1 首次查看&#xff08;工作区没有任何文件&…

2023年美赛ICM问题E:光污染 这题很好做啊!

2023年美赛ICM问题E:光污染 这题很好做啊&#xff01;![在这里插入图片描述](https://img-blog.csdnimg.cn/e918cc6fc9214b53bf4859063bfe56b0.png#pic_center) 我看到DS数模的分析&#xff0c;看似头头是道&#xff0c;实则GouPi不通&#xff0c;我出一个&#xff0c;用于大家…

分享5款办公必备的轻量级软件

今天推荐5款十分小众的软件&#xff0c;知道的人不多&#xff0c;但是每个都是非常非常好用的&#xff0c;有兴趣的小伙伴可以自行搜索下载。 1.PPT演示软件——Prezi Prezi是一种主要通过缩放动作和快捷动作使想法更加生动有趣的演示文稿软件。它打破了传统 Powerpoint的单线…

JavaEE——MyBatis将查询结果集封装进POJO实体类

简单介绍 在之前的我们比较详细的介绍过MyBatis的配置信息的时候&#xff0c;在SQL映射文件中说过我们可以直接将结果集映射到我们的POJO实体类中&#xff0c;省去了我们自己处理查询结果集的时间和代码&#xff0c;接下来我们就来演示将单条数据和多条数据映射到我们POJO实体…

java面试题-阿里真题详解

前言 大家好&#xff0c;我是局外人一枚&#xff0c;最近有不少粉丝去阿里巴巴面试了&#xff0c;回来之后总结不少难题给我&#xff0c;以下是面试的真题&#xff0c;跟大家一起来讨论怎么回答。 阿里一面 1、说⼀下ArrayList和LinkedList区别 ⾸先&#xff0c;他们的底层数…

CSA《企业架构参考指南》实现安全、效率和运营,最佳实践指南!

企业数字化安全转型面临着信息系统架构的选择、判断和组合的困扰。对组织、技术、人才、管理和业务模型等多方面的有机融合和运转构成了架构&#xff0c;而安全是架构高效发挥的基础&#xff0c;二者都是竞争力。 国际云安全联盟CSA发布报告《企业架构参考指南》是国外大型企业…

【Windows】使用Fiddler 工具对手机进行接口监听

目录 工具下载 配置Fidder 手机端获取证书 过滤指定接口 工具下载 CSDN下载地址 其他下载地址 配置Fidder 安装后&#xff0c;打开进入如下界面 在fiddler菜单项选择Tools -> Options -> HTTPS 勾选【Decrypt HTTPS traffic 】 下拉框默认&#xff1a;【from al…

C++复习笔记11

1. vector是表示可变大小数组的序列容器。 2. 就像数组一样&#xff0c;vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问&#xff0c;和数组一样高效。但是又不像数组&#xff0c;它的大小是可以动态改变的&#xff0c;而且它的大小会被…