调皮的表情图(Emoji)

article/2025/5/15 13:07:02

调皮的表情(Emoji)

  • 示例
  • HTML
  • CSS
  • JS

更多有趣示例 尽在 知屋安砖社区

示例

在这里插入图片描述

HTML

<div class="main"><div class="emoji"><div class="emoji__eyes abs"><div class="emoji__eye"></div><div class="emoji__eye"></div></div><div class="emoji__shadows abs"><div class="emoji__shadow"></div><div class="emoji__shadow"></div></div><div class="emoji__mouth abs"></div></div><div class="poop">&#128169;</div><div class="floor abs"></div><div class="bubble-e"></div><div class="bubble-p"></div><h1 class="pop">POP!</h1>
</div>

CSS

:root{--bg: #f7f6e6;--yellow-1: #FFEE19;--yellow-2: #FFA630;--red-1: #FF0027;--red-2: #CB000E;--shadow-1: #e3c262;--shadow-2: #FF5875;--floor: #C5C5C4;
}
*,
*::before,
*::after{margin: 0;padding: 0;box-sizing: border-box;
}
body{width: 100%;height: 100vh;display: flex;justify-content: center;align-items: center;overflow: hidden;font-family: 'Montserrat', sans-serif;font-size: 90px;background: var(--bg);color: var(--shadow-2);user-select: none;
}
h1{position: absolute;top: 0%;z-index: -1;animation: title 10s linear infinite;
}
.main{position: relative;width: 800px;height: 600px;display: flex;justify-content: center;align-items: center;
}.abs{position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);
}
.emoji{position: absolute;width: 300px;height: 300px;bottom: 250px;left: calc(50% - 150px);border-radius: 50%;border: 10px solid black;background-color: var(--yellow-1);box-shadow:inset 5px -5px 0 var(--yellow-2),inset -5px 5px 0 white,-5px 5px 0 var(--yellow-2);animation:emoji 10s linear infinite,emoji-scale 10s linear infinite,emoji-color 10s linear infinite,emoji-shake 10s ease-in-out infinite;
}.emoji__eyes,.emoji__shadows,.emoji__mouth{display: flex;justify-content: space-between;width: 50%;height: 20px;}.emoji__eye,.emoji__shadow{width: 20px;height: 20px;border-radius: 50%;background-color: black;}.emoji__eyes{ z-index: 2000; }.emoji__eye{ animation: emoji-eye 10s infinite; }.emoji__shadows{width: 62.5%;transform: translate(-50%, 20%);animation: shadow-shake .2s infinite;}.emoji__shadow{width: 25px;height: 25px;border-radius: 50%;background-color: var(--shadow-1);animation: shadow-color 10s infinite;}.emoji__mouth{width: 50px;height: 50px;border-radius: 50%;border-top: 10px solid black;border-right: 10px solid black;border-bottom: 10px solid transparent;border-left: 10px solid transparent;transform: translate(-50%, -20%) rotateZ(135deg);animation: emoji-mouth 10s infinite;}
.poop{position: absolute;font-size: 40px;z-index: -1;animation: poop 10s infinite;
}
.floor{width: 300px;height: 10px;border-radius: 10px;transform: translate(-50%, 170px) ;background-color: var(--floor);z-index: -2;animation: floor 10s linear infinite;
}.bubble-p,
.bubble-e{position: absolute;left: 50%;bottom: 80px;background-image:radial-gradient(circle at 25% 20%, var(--red-1) 4px ,transparent 4px),radial-gradient(circle at 50% 25%, var(--red-1) 3px , transparent 3px),radial-gradient(circle at 10% 40%, var(--red-1) 3px , transparent 3px),radial-gradient(circle at 90% 30%, var(--red-1) 4px , transparent 4px);border-radius: 50%;animation: bubble-p 10s infinite;
}
.bubble-e{background-image:radial-gradient(circle at 25% 20%, var(--yellow-1) 4px ,transparent 4px),radial-gradient(circle at 50% 25%, var(--yellow-2) 3px , transparent 3px),radial-gradient(circle at 10% 40%, var(--yellow-2) 3px , transparent 3px),radial-gradient(circle at 90% 30%, var(--yellow-1) 4px , transparent 4px),radial-gradient(circle at 80% 40%, var(--yellow-2) 3px , transparent 3px),radial-gradient(circle at 80% 20%, var(--yellow-2) 5px , transparent 5px);animation: bubble-e 10s infinite;
}/**/@keyframes emoji {0%, 70%, 100%{ bottom: 250px; }30%, 35%{ bottom: 130px; }
}
@keyframes emoji-shake {0%, 70%,71%,72%,73%,74%,75%,76%,77%,78%,79%,80%,100%{ left: calc(50% - 150px); }70.5%,71.5%,72.5%,73.5%,74.5%,75.5%,76.5%,77.5%,78.5%,79.5%{ left: calc(50% - 145px); }
}
@keyframes emoji-scale {0%, 25%, 60%, 100%{ transform: scaleY(1) scaleX(1);}38%, 45%{transform: scaleY(1.07) scaleX(.95);transform-origin: bottom center;}30%, 32%{ transform: scaleY(.965) scaleX(1.051);}
}
@keyframes emoji-color {0%, 65%{background-color: var(--yellow-1);box-shadow:inset 5px -5px 0 var(--yellow-2),inset -5px 5px 0 white,-5px 5px 0 var(--yellow-2);}70%, 95%{background-color: var(--red-1);box-shadow:inset 5px -5px 0 var(--red-2),inset -5px 5px 0 white,-5px 5px 0 var(--red-2);}
}
@keyframes emoji-mouth {0%, 65%, 100%{ width: 50px; height: 50px; }70%, 95%{ width: 20px; height: 20px; }
}@keyframes emoji-eye {0%, 65%{width: 20px;height: 20px;}70%, 95% {width: 22px;height: 22px;}
}
@keyframes shadow-color {0%, 65%{ background-color: var(--shadow-1);}70%, 95% {background-color: var(--shadow-2); }
}
@keyframes shadow-shake {0%{ transform: translate(-49.5%, 20%);}100%{ transform: translate(-50.5%, 30%); }
}
@keyframes floor {0%, 70%, 100%{ width: 200px; }30%, 35% { width: 300px; }
}
@keyframes poop {0%, 80%{bottom: 50%;opacity: 0;}85%, 98% {bottom: 128px;opacity: 1;}100%{ opacity: 0;}
}
@keyframes title {0%, 80%{top: 20%;opacity: 0;transform: scaleZ(0);}81%, 100% {top: calc(0% - 50px);opacity: 1;transform: scaleZ(1);left: 20%;}
}
@keyframes bubble-e {0%, 40%{left: calc(50% - 10px);width: 20px;height: 80px;opacity: 0;}42%{ opacity: 1; }100%{left: calc(50% - 250px);width: 500px;height: 200px;opacity: 0;}
}
@keyframes bubble-p {0%, 83%{left: calc(50% - 10px);width: 20px;height: 80px;opacity: 0;}85%{ opacity: 1; }95%, 100%{left: calc(50% - 200px);width: 400px;height: 200px;opacity: 0;}
}

JS

/*
Designed by: [盈嘉小红砖](https://xhz.bos.xyz/)
Original image: https://dribbble.com/shots/3031517-MBE-Style-Emoji-Poop
*/

http://chatgpt.dhexx.cn/article/d6OGaJ0K.shtml

相关文章

现表情包大幅流行,今天教你们开发个人表情包网站

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者&#xff1a;python学习教程 ( 想要学习Python&#xff1f;Python学习交流群&#xff1a;1039649593&#xff0c;满足你的需求…

python是世界上最好的语言表情包_语言表情包 - 语言微信表情包 - 语言QQ表情包 - 发表情 fabiaoqing.com...

如果你有一个朋友很久没跟你联系了一是他死了是他是学汉语言的三是他在期末考试如果他既是汉语言的又在准备期末考试你就当他死了吧 - 汉语言专业表情包 对方不想和你说话,向你推荐了世界上最好的语言!(PHP)_PHP_语言_对方表情 组织语言中(写作业中)_作业_语言_组织表情 …

情网

情网 我掩饰不住的慌张&#xff0c;在迫不急待地张望&#xff0c;生怕这一路是好梦一场。而你是一张无边无际的网&#xff0c;轻易就把我困在网中央&#xff0c;我越陷越深越迷惘&#xff0c;路越走越远越漫长&#xff0c;如何我才能锁住你眼光。情愿就这样守在你身旁&#xff…

javaScript基础面试题 -- 延迟加载JS有哪些方式?

延迟加载JS有哪些方式&#xff1f; js脚本放置在不同位置&#xff0c;对页面加载的不同影响defer与async的区别&#xff1a; 回答&#xff1a;defer 与 async js脚本放置在不同位置&#xff0c;对页面加载的不同影响 关于这个问题&#xff0c;首先来介绍一下&#xff0c;js脚本…

14道高频手写JS面试题及答案,巩固你的JS基础

目录 1. 手写深拷贝 2. 防抖函数 3. 节流函数 4. 模拟 instanceof 5. 全局通用的数据类型判断方法 6. 手写 call 函数 7. 手写 apply 函数 8. bind方法 9. 模拟 new 10. 类数组转化为数组的方法 11. 组合继承 12. 原型式继承 13. 实现 Object.create() 14. 数组…

javaScript基础面试题 --数据类型和考题

简单数据类型和复杂数据类型 简单类型&#xff08;基本数据类型、值类型&#xff09;&#xff1a;在存储时变量中存储的是值本身&#xff0c;包括string &#xff0c;number&#xff0c;boolean&#xff0c;undefined&#xff0c;null 复杂数据类型&#xff08;引用类型&…

分享一些常用的 JS 基础面试题

介绍 此篇属于前端算法入门系列的第一篇&#xff0c;主要介绍常用的数组方法、字符串方法、遍历方法、高阶函数、正则表达式以及相关数学知识。 前端算法入门一&#xff1a;刷算法题常用的JS基础扫盲[1]前端算法入门二&#xff1a;时间空间复杂度\&8大数据结构的JS实现[2]前…

js基础面试题总结

数据类型 什么是引用类型&#xff0c;值类型 值类型key与value的值存储再栈中&#xff08;量小&#xff09;医用类型再栈存储引用地址&#xff0c;在堆中存储数据&#xff08;量大&#xff09;把引用类型赋值给一个变量&#xff0c;是把变量的引用地址指向引用类型堆中地址 …

js基础常考面试题汇总(一)(附答案)

1.值类型和引用类型的区别 //值类型 let a 100 let b a a 200 console.log(b) //100 //引用类型 let a { age: 20 } let b a console.log(a.age) //21值类型&#xff1a;number, string, boolean, null, undefined, symbol(ES6)引用类型&#xff1a;Object(对象的子类: A…

3道js经典面试题

第一道&#xff1a; var a 10; // 全局作用域&#xff0c;全局变量。a10function foo() {// var a //的声明将被提升到到函数的顶部。// 比如:var aconsole.log(a); // 打印 undefined// 实际初始化值20只发生在这里var a 20; // local scope}foo(); 看图说话&#xff1a; 第…

2022年js基础面试题---持续更新

目录 1.javascipt的数据类型 1.1基本类型 1.2引用类型 1.3存储方式的区别 1.4 undefined和null的区别 1.5JavaScript什么情况下会返回undefined值&#xff1f; 2.javaScript数据类型检测的方法 2.1 typeof 2.2 instanceof 3.创建函数的几种方式 3.1 函数声明式 3.2…

JS 基础面试题

JS 基础面试题 1、什么是JavaScript&#xff1f; 基于对象和事件驱动可解释性脚本语言 2、JavaScript与ECMAScript的关系&#xff1f; JavaScript是ECMAScript的表现&#xff0c;ECMAScript是JavaScript的规范 3、变量的命名规则&#xff1f; 1.名字见名知义&#xff0c;…

js基础面试题

一、JavaScript的基本数据类型 1、 基本类型&#xff1a;字符串&#xff08;String&#xff09;、数字(Number)、布尔(Boolean)、对空&#xff08;Null&#xff09;、未定义&#xff08;Undefined&#xff09;、Symbol。 2、 引用数据类型&#xff1a;对象(Object)、数组(Arr…

【c++】atan2()和atan()函数

atan2()&#xff1a; &#xff08;1&#xff09;定义&#xff1a; double atan2(double y&#xff0c;double x); atan2() 函数的功能是求 y/x 的反正切值。atan2() 是 atan() 的增强版&#xff0c;能够确定角度所在的象限。 反正切函数 atan2() 和正切函数 tan() 的功能恰好…

asin、acos、atan 和 atan2 函数用法简介

函数名: asin 函数原型: double asin(double x); (x > -1 && x < 1) 功 能: 返回 x 的弧度制反正弦值 函数名: acos 函数原型: double acos(double x); (x > -1 && x < 1) 功 能: 返回的是一个数值的反余弦弧度值&#xff0c;其范围是 0…

atan2与atan的区别

目录 总结 atan2: Four-quadrant inverse tangent. atan 距离对比 总结 简而言之&#xff0c;atan2与atan的区别体现在两个方面&#xff1a; (1) atan2接收两个输入参数&#xff1b;atan只接收一个输入参数 (2) atan2对象限敏感&#xff0c;根据两个参数判断它是属于哪个象…

【Unity3D日常开发】Mathf.Atan2函数研究

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客QQ群&#xff1a;1040082875 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 最近有用到这个函数&#xff0c;就…

【计算几何】atan2函数

atan2函数 幅角 复数的模与辐角是复数三角形式表示的两个基本元素&#xff0c;复数所对应的向量长度称为复数的幅值&#xff0c;该向量与实轴正方向的夹角为复数的辐角。辐角的大小有无穷多&#xff0c;但是辐角主值唯一确定。利用复数的模和辐角&#xff0c;可以将复数表示成…

matlab atan2函数解析

旁边的图片显示内容是:在一个单位圆内atan2函数在各点的取值。圆内标注代表各点的取值的幅度表示。 图片中,从最左端开始,角度的大小随着逆时针方向逐渐从-π增大到+π,并且角度大小在点位于最右端时,取值为0。 另外要注意的是,函数atan2(y,x)中参数的顺序是倒置的,atan…

torch.atan2函数详细解答

先看看arctan arctan实际上是用来计算点(x&#xff0c;y)组成的向量&#xff0c;与x轴的弧度的&#xff0c;是tan的反函数&#xff0c;推导如下&#xff0c;α为弧度 ​ ​ yarctan(x)其图像如下 y为弧度&#xff0c;x为任意值&#xff0c;这里不是指上面的坐标x&#xff0c…