CSS3 动画颜色分步

2024-01-12

我正在尝试在按钮上制作一个动画来改变color and background-color从白色到黑色。

我不想要任何褪色,所以我发现我可以使用animation-timing-function: step.

然而,当我使用它时,动画不会达到黑色,而是停止在灰色。

.animated-play-btn {
  background-color: white;
  height: 50px;
  width: 200px;
  animation-timing-function: steps(2, end);
  animation-duration: 1s;
  animation-name: clipping_btn;
  animation-iteration-count: infinite;
  animation-fill-mode: forwards;
}
@keyframes clipping_btn {
  from {
    background-color: #000;
    color: white;
  }
  to {
    color: black;
    background-color: #fff;
  }
}
<button class="animated-play-btn">
  coucou
</button>

这里的demo https://jsfiddle.net/8tm8shm7/.

任何人都知道如何做到这一点(当然没有 IS)?


这似乎是一个“灰色”区域(双关语)steps()动画的计时功能。

似乎发生的事情是当你使用steps(2, end),动画应该有两个步骤 - 一个是从黑色背景 + 白色到中间状态(两者都是灰色),然后另一个从中间状态到白色背景 + 黑色(最终状态),但第二步发生在动画结束时,几乎同时该元素将恢复到其原始状态以开始下一个循环。所以,这给人一种白色背景+黑色永远不会发生的印象。

似乎有效的解决方案是使用steps(1, end)开始和结束状态为黑底+白色,中途阶段为白底+黑色。我没有任何关于为什么它有效的结论性解释,但重点是它确实有效。

这篇文章来自designmodo http://designmodo.com/steps-css-animations/是我找到的关于这个主题的唯一一个,但我仍然发现很难解释这种行为的原因。看到之后我们可以确定的一件事这个例子 http://designmodo.com/demo/stepscss/car.html是如果steps(n, start)使用时,汽车永远不会到达起始位置,而如果我们使用steps(n, end)它永远不会到达终点。这是一个 4 步动画,但只有三个步骤可见,另一个步骤发生在开始或结束时(取决于参数)。

解决方案:

.animated-play-btn {
  background-color: white;
  height: 50px;
  width: 200px;
  animation-timing-function: steps(1, end);
  animation-duration: 1s;
  animation-name: clipping_btn;
  animation-iteration-count: infinite;
  animation-fill-mode: forwards;
}
@keyframes clipping_btn {
  0%, 100% {
    background-color: #000;
    color: white;
  }
  50% {
    color: black;
    background-color: #fff;
  }
}
<button class="animated-play-btn">
  coucou
</button>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS3 动画颜色分步 的相关文章

  • 有什么方法可以声明盒子的大小/部分边框吗?

    有什么方法可以在 CSS 中声明框的大小 部分边框吗 例如一个盒子350px只显示第一个边框底部60px 我认为这可能非常有用 例子 并不真地 但以优雅降级且不需要多余标记的方式实现这种效果非常容易 div width 350px heig
  • CSS3 - 性能最佳实践是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 表格底部的粘性滚动条

    我不确定 粘性 是否是这个术语 但是有没有办法使滚动条overflow auto保持可见 我有一个相当大的表格 我希望它可以水平滚动 但是 表格也相当高 因此当页面加载时 水平滚动条不在浏览器的视口内 因此很难判断表格是否可滚动 div s
  • Brush 属性的 WPF ColorAnimation

    我想知道是否有人可以帮助我 我有一个标签 当在后面的代码中调用方法时 我需要能够在任意两种颜色之间交叉淡入淡出 迄今为止我最好的尝试 Private OldColor as Color Colors White Sub SetPulseCo
  • 重置 div 内容的 css 样式

    有一个用 css 样式定制的 html 页面 我无法更改此 css 该页面的一个标签被设计为动态 html 数据的容器 我怎样才能 重置 这个div的css设置 页面中定义的css样式对此div的内容没有影响 我只能访问动态 html 并且
  • CSS 圆角六边形按钮

    我可以使用 CSS 创建相同的按钮 圆角是重要部位 角是主要原因 带圆角的三角形按钮 请看我下面的代码和图片 lngbtn position relative width 150px height 50px margin 50px colo
  • 通过 Javascript 更改 Webkit 属性?

    请帮助我 可能是因为我对 CSS 动画和 Javascript 相当陌生 但我使用的代码应该更改它的属性 当我运行代码时 它会执行代码中的所有其他操作 除了更改所需 div 的 CSS 属性 我已经尝试了所有这四种方法 但似乎都不起作用 它
  • 使绝对定位的div扩展父div高度

    正如你在下面的 CSS 中看到的 我想要child2将自己定位在之前child1 这是因为我目前正在开发的网站也应该在移动设备上运行 在移动设备上child2应该位于底部 因为它包含我想要在移动设备上的内容下方的导航 为什么不是 2 个母版
  • IE jquery click 仅适用于 li 中的文本,不适用于整个框

    我创建了一系列作为 li 的按钮 我希望用户能够单击它们 ul class item list li class item button style color 4bb2c5 1 li li class item button style
  • CSS位置:绝对+动态高度

    我有 4 个 div 标签一个接一个 全在position absolute我使用它们对齐top and left 第三个 div 标签包含动态内容 并且 div 的高度根据其中的文本量而变化 然而 当我设置top and left在所有
  • 在这个页面中,悬停不起作用,我不知道为什么,而且页脚也没有占用 100% 宽度,即使我已经给了它

    我的编码是否不正确 或者悬停和页脚有什么问题 我需要知道 php 邮件程序是正确的还是我有错误 我无法找到错误 因为邮件功能在本地服务器上不起作用
  • 允许指针(单击)事件穿过元素,同时保持滚动功能

    我的目标是拥有一个允许 下面要点击 交互的元素 滚动 众所周知 1 的解是pointer events none 这正如中所描述的单击 DIV 到底层元素 https stackoverflow com questions 3680429
  • 滚动时静态标题

    我编写了一个主页 现在我正在尝试构建一个标题 该标题是静态的 就像在滚动内容时不滚动一样 当内容位于其下方时 它应该保持在顶部 我找到了这个解决方案here https stackoverflow com questions 9677894
  • 当我“显示:无”一个 SVG 时,另一个(独立的)SVG 会以不同的方式呈现

    我已经伤透了几个小时了 这没有任何意义 我将遇到的问题减少到这个codepen https codepen io Octopous pen OJORpJQ https codepen io Octopous pen OJORpJQ HTML
  • 如何更改引导弹出窗口箭头边框颜色而不填充它?

    我想更改弹出箭头的边框颜色 当我应用边框颜色时 箭头本身填充了颜色 我只想为弹出框主体的箭头边框提供颜色 p Click on button to see Popover p a href class btn btn primary pop
  • Bootstrap:下拉菜单无法通过 jQuery 单击打开

    我正在创建一个包含多行的表 所有行都有一个 选项 按钮 该按钮应该显示下拉上下文菜单 为了使代码更短 我使用了一个div以便将其重用为上下文菜单的通用标记 我正在使用 Bootstrap 5 1 3 和 jQuery 3 6 0 以下是我的
  • 禁用任何类型的浏览器窗口滚动?

    有没有办法禁用滚动 不仅仅是滚动条 还有浏览器窗口的全部功能 根据您对 Keit 的回答 您不想在打开灯箱时滚动处于活动状态 如果是这种情况 您可以使用以下 css 在打开灯箱的同时向正文添加一个类 这个解决方案的好处是它保留了滚动 空间
  • CSS:在 hsla 中使用 hsl 变量?

    假设我有一个 CSS 变量hsl定义如下 white 1 hsl 0deg 0 100 现在 我想使用相同的白色 但不透明度为 50 所以 像这样 white 2 hsla 0deg 0 100 50 有没有办法使用第一个变量 white
  • HTML / CSS 如何将图像图标添加到输入类型=“按钮”?

    我使用下面的 CSS 但它将图像放在按钮的中心 使用任何方式左对齐或右对齐图标
  • 在CSS中,有什么比使其成为块元素更好的强制元素换行的方法呢?

    我有一个 H3 标题 我想将其样式设置为具有特定的背景颜色 但不让元素的背景占据父元素的整个宽度 鉴于 H3 默认情况下是块元素 我的样式需要将该元素更改为内联块元素 或者只是内联内联元素 如下所示 h3 background color

随机推荐

  • 如何在 DbContext 中手动设置 Oracle 连接字符串

    我有以下连接字符串
  • 安装 scikit-image 时出现问题可能是由于 blosc

    您好 我正在尝试在 ubuntu 18 04 上的虚拟环境中安装 scikit 映像 当它尝试安装 imagecodecs 时失败 我尝试单独安装 imagecodecs 但它给出了相同的错误 这是由于 blosc 造成的 我单独安装了 b
  • Vagrant 和 Google App Engine 不同步文件

    我目前正在使用 Vagrant 启动虚拟机以在虚拟机中运行 GAE 的 dev appserver 同步文件夹工作正常 我可以看到所有文件 但是 在我运行开发应用程序服务器后 主机对 python 文件的更改不会动态更新 要查看 pytho
  • AJAX post 使用 jQuery 更改数组参数的名称

    我正在使用 jQuery 做一个简单的 AJAX 帖子 效果很好 var parameters firstName John lastName Smith post http api example com rest parameters
  • Phonegap - 从图库中选择图像

    谁能告诉我 或者指出如何从 Phonegap Android 中的手机图片库中获取图像 有关于访问相机 效果很好 但不选择现有图像的文档 我正在寻找 Phonegap Javascript 而不是 Java 提前致谢 呃 那个Camera文
  • 限制 xquery 中的结果数量

    我有以下内容Xquery code for w in words let freq count corpus eq w div count content2 text eq w order by freq descending return
  • Linux 中的 Python OSError no 7(参数列表太长)

    我正在尝试打开一个新的子进程 它将接受一些输入文件并在其他文件中生成输出 虽然大多数情况下它都能正常运行 但当我尝试进行一些压力测试时 它会失败并给出以下错误跟踪 File home admin Workspace metadata plu
  • ARM 平台上的 SIGABRT 信号没有回溯?

    我在用着 回溯 and backtrace symbols fd 信号处理程序中的函数 用于生成用于调试的回溯 GDB 不可用 它们在 x86 桌面 Ubuntu 上运行良好 但是在目标设备 基于 ARM 上 Abort 信号的回溯 由于双
  • 在 WebLogic 10.3.5 上使用 Arquillian 进行 @EJB 注入不起作用

    我正在使用 Arquillian 在 WebLogic 10 3 5 上运行基本单元测试 不幸的是 EJB注入对我不起作用 并且在调用EJB时 得到一个NullPointerException 我发现的示例不需要添加 ejb jar xml
  • Redux with React - 与组件共享存储的正确方法

    Redux 的存储服务最终被 React 应用程序中的各个组件所使用 它公开的方法 例如dispatch getState和subscribe 可供所有类型的组件 例如容器或展示 使用 我认为传递商店服务的方法是一个重要的设计决策 我看到两
  • 无法在 Google App Engine 上部署应用程序:appengine-web.xml 不包含 元素

    当我单击在 netbeans 中的 google 应用引擎上部署应用程序时 这些是生成的错误消息 让我告诉你 最初 可能是我输入了错误的密码 导致应用程序部署失败 但现在 当我单击部署应用程序时 它不会询问我电子邮件或密码 无论如何 我该如
  • 如何使用 scala play 使用 OAuth1.0a 签署 POST?

    我正在尝试实施 LTI 启动请求 http www imsglobal org LTI v1p1 ltiIMGv1p1 html http www imsglobal org LTI v1p1 ltiIMGv1p1 html 使用 Scal
  • 在 jQuery.ajax 中,哪些 HTTP 状态代码算作成功?

    The 文档 http api jquery com jQuery ajax 似乎没有具体说明 jQuery ajax 中 成功 的含义 是 2xx 代码吗 只有200 从源代码来看 if status gt 200 status lt 3
  • javascript中的别名函数[重复]

    这个问题在这里已经有答案了 可能的重复 如果 Javascript 拥有一流的功能 为什么它不起作用呢 https stackoverflow com questions 8773579 if javascript has first cl
  • 无法在 Mountain Lion 上安装 pg gem

    升级到 Mountain Lion 后 我在使用 Rails 时遇到了很多麻烦 到目前为止 我试图解决这些问题并在互联网上搜索了几个小时 以确保我的系统具有升级后运行 Rails 的所有依赖项 我更新了我的 Homebrew 安装 我更新了
  • iOS 请求权限对话框未显示在屏幕录制或 QuickTime 视频上

    有谁知道App Store什么时候开始要求应用程序预览必须在物理设备上并显示此弹出窗口 即使当我将 iPhone Xs 镜像到 Mac 时 也不会显示弹出窗口 如果视频上没有弹出窗口 则应用商店拒绝应用预览 有人知道解决这个问题的更好方法吗
  • 将 mysqli_query 结果存储在会话中

    我想将 MySQLi 查询的结果存储为会话变量 以便我可以重用它而无需再次执行查询 我不想在网站的每个页面上或每次刷新页面时都执行相同的查询 我已经尝试了下面的代码 但出现了诸如 对象无法存储在会话中 和 mysqli fetch arra
  • 在node.js中读取csv文件的内容

    我正在尝试在nodejs中实现一个模块 刚刚开始在nodejs中工作 其要求如下 上传 csv 文件 读取 csv 文件的内容 目前用于restful api的框架是 express 4 2 0 和用于文件上传的multer 现在我已经在我
  • 如何将字符串处理为子列表层?

    这是示例表单 稍后我将尝试用文字解释它 我有一份分解字符串的清单 say a a a b a a b a c a b a a c a c a 其中 b 是标准 1 c 是标准 2 我想把它分成这样的列表 a a a b a a b a c
  • CSS3 动画颜色分步

    我正在尝试在按钮上制作一个动画来改变color and background color从白色到黑色 我不想要任何褪色 所以我发现我可以使用animation timing function step 然而 当我使用它时 动画不会达到黑色