css3 动画之满意度表情变化的复杂动画

别再让用户吐槽了!手把手教你用Figma和UserTesting搞定电商App可用性测试 本文详细介绍了如何利用Figma和UserTesting进行电商App的可用性测试,帮助团队发现并解决用户体验问题,提升转化率。通过实战案例和具体操作步骤,展示了从原型设计到线上产品的全流程测试方法,特别关注商品筛选、促销活动和结账流程等关键环节。 阅读详情

实现效果:

拉动滑动条,表情由愤怒到满意,并且颜色也由红色逐渐变更成绿色
如下图:
css动画

实现思路:

  1. 利用clip-path实现多边形蒙版对眼睛部分进行绘制
  .eye {
        position: absolute;
        top: 45px;
        width: 40px;
        height: 40px;
        background-color: #fff;
        border-radius: 50%;
        clip-path: polygon(0 70%, 100% 0, 100% 100%, 0 100%);
      }
  1. 利用 box-shadow 的 insert 属性可以绘制内部阴影的特性,对圆形绘制内阴影形成嘴部表情
      .mouse {
        height: 60px;
        width: 70px;
        position: absolute;
        left: calc(50% - 35px);
        top: 86px;
        /* border-radius: 30px; */
        border-radius: 50%;
        box-shadow: inset 0 6px 0 #fff;
        clip-path: inset(0% 0% 0% 0%);
        transform: translateY(30px);
        animation: mouse 1s linear var(--delay) 1 forwards paused;
      }
  1. 对滑动条样式修改,动态计算滑过的部分,并设置渐变条
      #rangeInput {
        -webkit-appearance: none;
        margin-top: 40px;
        height: 24px;
        width: 180px;
        border-radius: 12px;
        box-shadow: 0px 0px 8px 0px rgb(125, 125, 125);
        animation: face 1s linear var(--delay) 1 forwards paused;
        background-size: var(--slide) 100%;
        background-repeat: no-repeat;
      }

完整代码:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>表情变化动画</title>
  </head>
  <body>
    <style>
      body {
        margin: 0;
        padding: 0;
        --delay: 0;
        --slide: 0%;
      }
      #rangeInput {
        -webkit-appearance: none;
        margin-top: 40px;
        height: 24px;
        width: 180px;
        border-radius: 12px;
        box-shadow: 0px 0px 8px 0px rgb(125, 125, 125);
        animation: face 1s linear var(--delay) 1 forwards paused;
        background-size: var(--slide) 100%;
        background-repeat: no-repeat;
      }
      /*拖动块的样式*/
      input[type="range"]::-webkit-slider-thumb {
        -webkit-appearance: none;
        height: 24px;
        width: 24px;
        background: #fff;
        border-radius: 50%;
        border: solid 1px #ddd;
      }
      .container {
        margin-top: 200px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
      }
      .face {
        position: relative;
        background-color: red;
        width: 180px;
        height: 180px;
        border-radius: 50%;
        animation: face 1s linear var(--delay) 1 forwards paused;
      }

      .eye {
        position: absolute;
        top: 45px;
        width: 40px;
        height: 40px;
        background-color: #fff;
        border-radius: 50%;
      }
      .left {
        left: 36px;
        animation: leftEye 1s linear var(--delay) 1 forwards paused;
      }
      .right {
        right: 36px;
        animation: rightEye 1s linear var(--delay) 1 forwards paused;
      }
      .mouse {
        height: 60px;
        width: 70px;
        position: absolute;
        left: calc(50% - 35px);
        top: 86px;
        /* border-radius: 30px; */
        border-radius: 50%;
        box-shadow: inset 0 6px 0 #fff;
        clip-path: inset(0% 0% 0% 0%);
        transform: translateY(30px);
        animation: mouse 1s linear var(--delay) 1 forwards paused;
      }
      @keyframes face {
        0% {
          background-image: linear-gradient(to left top, #ff0000, #f36400);
        }
        20% {
          background-image: linear-gradient(to left top, #f36400, #dd9200);
        }
        40% {
          background-image: linear-gradient(to left top, #dd9200, #c1b700);
        }
        60% {
          background-image: linear-gradient(to left top, #c1b700, #d5a700);
        }
        80% {
          background-image: linear-gradient(to left top, #d5a700, #9fd600);
        }
        100% {
          background-image: linear-gradient(
            to left top,
            #9fd600,
            #8fe000,
            #7aea00,
            #5af50a,
            #00ff21
          );
        }
      }
      @keyframes mouse {
        50% {
          height: 6px;
          box-shadow: inset 0 6px 0 #fff;
          clip-path: inset(0% 0% 0% 0%);
          transform: translateY(40px);
        }
        50.1% {
          height: 6px;
          box-shadow: inset 0 -6px 0 #fff;
          clip-path: inset(50% 0% 0% 0%);
          transform: translateY(40px);
        }
        100% {
          height: 60px;
          box-shadow: inset 0 -40px 0 #fff;
          clip-path: inset(50% 0% 0% 0%);
          transform: translateY(0);
        }
      }
      @keyframes leftEye {
        from {
          clip-path: polygon(0 70%, 100% 0, 100% 100%, 0 100%);
        }
        to {
          clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
        }
      }
      @keyframes rightEye {
        from {
          clip-path: polygon(0 0, 100% 70%, 100% 100%, 0 100%);
        }
        to {
          clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
        }
      }
    </style>
    <div class="container">
      <div class="face">
        <span class="left eye"></span>
        <span class="right eye"></span>
        <span class="mouse"></span>
      </div>
      <input type="range" id="rangeInput" min="0" max="1" step="0.01" />
    </div>
    <script>
      const input = document.querySelector("#rangeInput");
      const move = () => {
        document.body.style.setProperty("--delay", `-${input.value}s`);
        document.body.style.setProperty(
          "--slide",
          `${input.value * 156 + 12}px`
        );
      };
      move();
      input.oninput = move;
    </script>
  </body>
</html>

欢迎关注我的技术站

【信息科学与工程学】计算机科学与自动化——第六十三篇 人机交互之前端交互参数知识库02 每个分支下又细分了四个关键方向,并按照“研究对象/焦点、基本问题、核心理论/概念、研究方法、应用/目标、前沿/发展”的框架进行阐述,严格遵循了六级编码体系。在最终整合时,应建立唯一的学科分类编码表(例如,用两位数字或“ART”、“MED”、“ECO”等字母前缀),并确保所有下级编码(尺度、层次、类别、子类、具体项)的逻辑一致性。此回答中的编码为示例,实际系统需据此调整。控制过程(前馈、同期、反馈)、全面质量管理(TQM)、平衡计分卡(BSC)定量(调查、实验)、定性(访谈、民族志)、混合方法、大数据。 阅读详情

相关推荐

【信息科学与工程学】计算机科学与自动化——第六十三篇 人机交互之前端交互参数知识库01

此方案可满足千万级并发需求,同时支持时序数据、知识图谱和文档数据库的高效处理,通过云原生架构实现极致弹性。​:每月约$15-20万(100节点K8s集群+数据库集群+CDN流量)1. 宠物上架/下架流程。

weixin_49199313的博客 1476

js+css实现全屏表情掉落动画效果

js+css实现全屏表情掉落动画效果, js动画、css动画。全屏动画效果、全屏掉落效果、全屏雪花效果。

采黎的博客 628

动态GIF进度条素材集合

进度条是一种图形界面元素,它通过一个可视化的表示形式,显示任务从开始到完成的过程。进度条的目的在于提供一种直观的进度反馈,让用户了解系统正在处理的进程状态。这不仅能够增加用户对系统的信任,也能够显著提升用户体验。

weixin_33298352的博客 1047

纯css实现emoji动态表情

当然可以通过纯CSS来实现emoji动态表情。 要实现emoji动态表情,您可以使用CSS中的“animation”属性。此属性允许您定义动画效果的各个方面,例如持续时间,动画类型,延迟等等。您可以结合使用“@keyframes”规则,定义您所需的动画帧,从而实现各种动态效果。 下面是一个示例CSS代码,演示如何通过CSS动画使笑脸emoji表情跳动: .emoji { animation: ...

weixin_35756892的博客 956

仿微信界面H5聊天室源码:多人群聊IM系统部署与二次开发

即时通讯(IM)能力已成为Web应用中的高频需求,从社交聊天到客服系统都离不开实时消息交互。其底层核心通常依托WebSocket长连接技术,通过连接管理、心跳检测、消息推送与重连机制,保障多人群聊场景下的低延迟通信。在实际工程项目中,一套成熟的聊天室源码能大幅降低从零搭建的技术门槛,尤其当界面设计接近微信交互习惯时,可显著提升用户体验与验收通过率。这类网页聊天室方案不仅支持单聊、群聊、好友关系,还可扩展客服分配与工单体系,适合接单开发者、产品经理及企业内部沟通工具使用。本文梳理一套可直接部署的H5聊天室源码

weixin_34408624的博客 308

仿微信添加群聊界面的完整实现教程

微信群聊界面不仅是用户沟通的场所,也是微信应用中信息交互的核心之一。它提供了一系列功能,如文本消息、图片、视频的发送与接收,以及群公告、成员管理等。每个功能组件都有其特定的位置和作用。异步加载技术允许应用在不阻塞主线程的情况下,从服务器获取数据。这种技术在网络请求中尤其有用,因为它可以避免因加载远程数据而导致的界面冻结或无响应。在微信群聊应用中,当用户访问联系人列表时,应用可以使用异步请求来获取最新的联系人信息。

weixin_42355400的博客 870

js和CSS3控制网页脸部表情动画js特效

下载地址 CSS3脸部表情鼠标控制特效是一款简单的卡通面孔表情,脸部表情,面部表情,眼睛跟随鼠标移动动画效果代码。 dd:

ICode联盟 286

构建高效JavaScript自动完成功能

为了实现自动完成输入功能,需要研究和实现一系列匹配算法。下面是一些常用的匹配算法,每种算法都有其特定的应用场景和优缺点:字符串匹配算法:如暴力匹配(Brute Force)、KMP算法、Boyer-Moore算法等,用于寻找一个字符串在另一个字符串中的出现位置。模糊匹配算法:如Levenshtein距离(编辑距离)算法,用于衡量两个字符串之间的差异程度。前缀匹配算法:如Trie树(前缀树),适合快速匹配字符串的前缀。排序匹配算法:如基数排序,适合对多个关键词进行排序匹配。

weixin_30356433的博客 1359

快看!HTML&CSS:你没见过的卡通表情

它包含了HTML结构、CSS样式和一些内嵌的CSS动画。这个网页设计了一个有趣的动画效果,看起来像是一个卡通风格的“便便”表情,周围还有一些彩色的气泡(可能是代表气体的视觉效果O(∩_∩)O哈哈~)

weixin_52814911的博客 803

CSS表情符号动画.zip

CSS表情符号动画,CSS表情符号动画代码。

css3绘图卡通人物表情动画特效

css3绘图卡通人物表情动画特效

HTML制作动画表情代码,纯CSS3如何实现兔斯基动态害羞表情?(代码介绍)

本篇文章给大家通过代码示例介绍一下纯CSS3如何实现兔斯基动态害羞表情?有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。直接分享代码吧:html结构:这个结构还是很简单的,毕竟兔斯基就是简单的线稿表情。主要还是人为的给它赋予动画,带入一种有特定情境的表情。下面就给它设置css样式:头部(包括眼睛和脸颊):.tuzki_container{position:relative;}.tu...

weixin_35514865的博客 1359

C2000 ePWM与SDFM同步配置:从寄存器到Driverlib实战解析

在嵌入式实时控制系统中,脉宽调制(PWM)是实现电机驱动、数字电源等应用的核心技术,其信号质量和时序精度直接决定了系统性能。为实现精确控制,PWM信号常需与模数转换器(ADC)或Sigma-Delta滤波器(SDFM)的采样时刻严格同步,以消除开关噪声并获取准确的反馈信号。其技术原理在于通过硬件同步机制,将PWM的特定时间点(如周期中心)作为触发源,控制数据采集的启动时刻。这种硬件级同步能有效提升闭环控制的稳定性和动态响应速度,广泛应用于伺服驱动、变频器等高性能场景。本文聚焦于TI C2000系列微控制器,

weixin_33692284的博客 442

利用CSS3特性根据对应百分比的颜色表情做满意度

大家看到这个第一眼是不是心想这应该得用canvas,可对于我这个还不会canvas的人来说顶多能把外面的圈给搞出来,但是里面的表情..........,就算画出来了,还得根据百分比改变它的颜色。想破头皮也没整出来,甚至觉得这绝对是ui在为难我。直到几天后,突发奇想,利用CSS3的线性渐变颜色和字体图标配合使用的方法来解决。 这个方法只需要几行代码就可以实现,而且非常简单。 这个方法...

阳光下的小孩的博客 1167

JSSIP实战:5分钟搞定WebRTC电话功能(附完整代码示例)

本文通过JSSIP库实战演示如何在Web应用中快速集成WebRTC电话功能。文章提供了从环境准备、SIP服务器连接到完整代码示例的详细步骤,涵盖用户注册、拨号接听、媒体流处理等核心环节,并针对常见问题给出排查方案,帮助开发者高效实现网页端实时语音通信。

u8v9w0x1y的博客 517

RS485两线制接线实战:从差分信号原理到Modbus避坑指南

本文深入解析RS485两线制接线的核心原理与实战步骤。从差分信号的抗干扰机制出发,详细拆解总线规划、屏蔽层接地、终端电阻安装等关键实操细节,并针对Modbus应用中常见的信号反射、极性接反、共模干扰等问题提供系统化的排查指南与解决方案,助力工程师构建稳定可靠的工业通讯网络。

7up55的博客 734

深入解析数字人Web UI推理:技术原理与实现

随着Web技术的不断进步,数字人现在可以通过Web UI与用户进行实时互动,为用户提供更加丰富和直观的体验。数字人Web UI推理技术的发展,不仅推动了人工智能领域的技术进步,也为用户带来了前所未有的交互体验。随着技术的不断完善和应用场景的拓展,数字人Web UI推理将在未来扮演更加重要的角色,成为智能交互的新标杆。在人工智能的浪潮中,数字人技术以其独特的交互性和逼真性,成为创新的前沿。3. 市场机遇:随着技术的成熟和用户接受度的提高,数字人Web UI推理在多个行业具有巨大的市场潜力。

dsdxsd12138的博客 1427

手把手教你接入京东购物小程序:从领券到下单的全流程解析

本文详细解析了如何从API申请到领券下单,手把手教你接入京东购物小程序的全流程。涵盖京东联盟账号注册、商品信息获取、优惠券链接转换等关键技术实践,帮助开发者高效实现电商功能集成,提升用户购物体验。

g5h6i的博客 908

计算机毕业设计PySpark+Hive+大模型小红书评论情感分析 小红书笔记可视化 小红书舆情分析预测系统 大数据毕业设计(源码+LW+PPT+讲解)

【摘要】本文介绍了一个基于PySpark+Hive+大模型的小红书评论情感分析系统开发任务书。项目结合分布式计算与大数据技术,通过Hive存储海量评论数据,PySpark进行分布式清洗预处理,并集成BERT等大语言模型实现细粒度情感分类(积极/消极/中性等)。系统包含数据采集、清洗、模型推理、可视化仪表盘等模块,支持10万条评论的实时分析,要求情感分类F1-score≥0.85。项目采用6人团队协作开发,周期12周,涵盖技术选型、开发规范、风险控制等内容,适用于企业级NLP应用或学术研究课题。(148字)

全网计算机/大数据辅导(自媒体)道祖第一人、全网粉丝100W+,专注于大学生项目实战开发,讲解,毕业答疑辅导,高校老师/讲师/同行合作。以及产品测评宣传、工具推广等合作。同时招收学生代理、校园代理。 2171

ArcGIS标注(二分式、三分式、条件分类标注、上下标、牵引线、文字格式化…)

ArcGIS中的各种标注方法、可能遇到的问题和细节。

m0_73306837的博客 5268

深入理解HTTPS:从SSLHandshakeException到证书链验证的完整解析

本文深入解析了HTTPS握手过程中常见的SSLHandshakeException异常,特别是由证书链验证失败引发的CertPathValidatorException。文章从TLS握手流程、证书链验证的数学原理出发,详细剖析了Java中TrustManager的工作机制,并提供了针对证书链不完整、自签名证书等典型问题的系统化排查流程与实战解决方案。

weixin_29313423的博客 231

基于HarmonyOS API 24健身教练排课系统:在ArkTS状态管理体系中,@Observed 装饰器标记一个类为“可观察对象“,被 @Observed修饰类,其实例属性变化可以被框架自动追踪

在移动互联网与智能穿戴设备高度普及的今天,"习惯养成"已经从一个模糊的自我管理理念,演变为一个可量化、可追踪、可视化的数字化产品赛道。越来越多的人希望借助手中的智能终端,把"早起、冥想、阅读、运动"这些抽象的自律行为,转化为一条条清晰的数据曲线和一张张可触摸的打卡卡片。而鸿蒙生态(HarmonyOS)凭借其跨设备协同、分布式软总线以及声明式 UI 开发框架 ArkUI,为这类注重"轻量化交互 + 即时反馈"的生活方式类应用提供了极为理想的生长土壤。本应用正是一款面向"晨间场景"深度打磨的习惯追踪工具。它聚焦

2302_79499487的博客 267

【异常】Cursor IDE 扩展主机超时错误处理文档The agent execution provider did not respond within 4 seconds.

该错误通常是 Cursor IDE 的临时性问题,不影响项目代码。大多数情况下,重新加载窗口或重启 IDE 即可解决。如果问题持续,可按上述进阶方案排查。重新加载窗口(最快)重启 IDE检查系统资源清理缓存检查扩展更多关于 AI+教育领域的干货,可以关注我的微信公众号第一时间获取哦~

奶爸的编程之路,也就一周冷个三天 2700

AI招聘自动化:技术架构与实施路径解析

招聘自动化是人力资源数字化转型的核心领域,其技术原理主要基于AI Agent和混合专家模型(MoE)。AI Agent通过专业化分工处理招聘全流程任务,从岗位定义、人才搜寻到简历评估,实现智能化决策。混合专家模型则结合了通用大模型的灵活性和垂直领域的专业精度,通过专家路由层和领域专家集群提升评估质量。这些技术在工程实践中显著提升了招聘效率,平均缩短职位填补周期75%,同时通过数据闭环持续优化模型。典型应用场景包括跨模态简历分析、智能JD生成和全球化合规招聘,最终实现从流程自动化到预测性招聘的进化。

weixin_30838873的博客 517

视频流推理的工程架构:YOLO模型如何做到单卡处理16路1080P实时流?

<think>我们只需要根据内容生成摘要,不超过150字。内容是关于YOLO模型单卡处理16路1080P实时流的技术分析,包括方案对比、架构设计等。摘要要简洁,突出关键点。</think>本文深度解析了YOLO模型单卡处理16路1080P实时流的技术方案,对比EagleEye、TensorRT+DeepStream、华为CANN及RK3588四条路线,重点介绍流水线架构、并发模型及显存优化,指出消费级显卡(如RTX 4090)即可实现高并发智能视觉分析。

2601_95807009的博客 162

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

原生多语言聊天机器人架构设计与落地实践

多语言聊天机器人并非简单叠加翻译模块,而是需深入理解语言类型学差异(如SVO/SOV语序、屈折/分析型形态)与文化表达规则的技术系统。其核心原理在于构建独立语言语义空间,通过分族系建模、语言专属意图图谱和文化适配响应生成,规避翻译依赖导致的语义漂移与礼貌失真。技术价值体现在端到端延迟降低84%、跨语言意图识别F1提升31.5个百分点、首次响应满意度达91%。典型应用场景包括跨境电商客服、出海SaaS平台及多语言内容服务,尤其适用于需处理阿拉伯语词根派生、德语格变化、日语敬语体系等高阶语言现象的工程实践。

ajwqb06628的专栏 585

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: 利用css实现文字一行内展示,超出一行,内容中间显示省略号
下一篇: css3动画之 transform-style preserve-3d 实现webpack官网图标
Dyanfee
博客等级 码龄9年 64粉丝 18原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值