CSS 动画,单击时切换旋转

2024-01-23

我尝试让下面的插入符号在单击下拉菜单时旋转 180 度。在我尝试实现的解决方案中,它将插入符的类更改为单击时向上切换或向下切换。我第一次点击它时它会向上旋转,第二次它会立即返回到起始位置,然后再向上旋转。我闻到了脏代码的味道,添加此切换旋转动画的最简单方法是什么。预先感谢您的任何帮助。
这是我当前的CSS:

.toggle-up {
  animation-name: toggle-up;
  animation-delay: 0.25s;
  animation-duration: 0.75s;
  animation-fill-mode: forwards;
}
.toggle-down {
  animation-name: toggle-down;
  animation-delay: 0.25s;
  animation-duration: 0.75s;
  animation-fill-mode: forwards;
}

/*animations*/
@keyframes toggle-up {
  100% {
    transform: rotate(180deg);
  }
}
@keyframes toggle-down {
  100% {
    transform: rotate(180deg);
  }
}

对于如此简单的事情,您实际上并不需要关键帧动画。如果您只是在单击时向图标添加一个类,然后将其删除,这将应用您的旋转。这是一个使用 font Awesome 和简单旋转的工作 plunkr http://plnkr.co/edit/hmOj1krQl8wdpbIf0iH8。这只是一个简单的示例,您将需要使用供应商前缀,并注意 css 转换在旧版浏览器中不起作用。

<div id="container">
    <i id="icon" class="fa fa-arrow-down"></i>
</div>

.fa-arrow-down{
  transform: rotate(0deg);
  transition: transform 1s linear;
}

.fa-arrow-down.open{
  transform: rotate(180deg);
  transition: transform 1s linear;
}

(function(document){
  var div = document.getElementById('container');
  var icon = document.getElementById('icon');
  var open = false;

  div.addEventListener('click', function(){
    if(open){
      icon.className = 'fa fa-arrow-down';  
    } else{
      icon.className = 'fa fa-arrow-down open';
    }

    open = !open;
  });
})(document);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS 动画,单击时切换旋转 的相关文章

随机推荐

  • 使用 d3.js 的 Pack Layout 节点中的 NaN x 和 y 值

    我正在尝试使用 d3 js 制作圆形包装图 问题是节点的 x 和 y 属性具有 NaN 值 因此所有圆都有变换 翻译 NaN NaN 杰森数据 var data name flare children name analytics chil
  • 如何在 xampp 服务器上运行 Angular 应用程序?

    我正在使用 Angular 2 和 php 进行工作 在我使用 Angular 2 开始 PHP 之前 我已经在服务器 localhost 3000 上使用 node js 完成了 Angular 2 现在使用 PHP 我如何使用 xamp
  • 在ConfigureServices方法中访问IHostingEnvironment

    我需要办理登机手续ConfigureServices方法当前托管环境名称是否为 开发 所以使用IHostingEnvironment IsDevelopment 方法对我来说可能没问题 但与配置方法不同 我没有IHostingEnviron
  • UPDATE 的 mysqli_affected_rows 有时在全行匹配时返回 0

    假设我有 MySQL 查询来更新一行 res mysqli query link UPDATE table SET val 1 WHERE id 5 if res if mysqli affected rows link gt 0 echo
  • Python Scrapy并不总是从网站下载数据

    Scrapy 用于解析 html 页面 我的问题是为什么有时scrapy返回我想要的响应 但有时不返回响应 是我的错吗 这是我的解析函数 class AmazonSpider BaseSpider name amazon allowed d
  • 如何使用 GCC 12.1 生成 C++23 堆栈跟踪?

    In the 发行说明 https www gnu org software gcc gcc 12 changes html对于 GCC12 在 运行时库 libstdc 它说 改进了实验性 C 23 支持 包括 默认情况下未构建 需要链接
  • 在 Haxe/OpenFL 应用程序中使用 SWF 动画

    尽管 Haxe 在 NME OpenFL 方面取得了巨大成就 但从 AS3 开发过渡的最大问题是资产 尽管 Haxe 与 as3 很相似 而且 OpenFL 试图提供熟悉的 API 但缺乏 SWF 支持吓跑了许多开发人员 我对此主题的研究使
  • Spark RDD 块在使用前被移除

    我正在使用 Future 对 RDD 执行阻塞操作 如下所示 dStreams foreach foreachRDD rdd gt Future writeRDD rdd 有时我会收到此错误 org apache spark SparkEx
  • Delphi IAccessible Get_accState 影响 Get_accName?

    我目前正在将 IAccessible Interface 添加到派生的 VCL 组件中 以便能够为我的应用程序实现自动化 UI 测试 实现接口后 我没有看到通过外部工具读出的组件属性中的名称 尽管我在调试时看到它已设置 经过 一些 或更可能
  • 在 ARCore 中添加的垂直平面上的对象始终旋转

    我正在 Sceneform ARFragment 中的垂直平面上添加图像 但它总是会旋转 该代码在水平面上运行良好 我将图像放置在垂直平面上的代码如下 arFragment setOnTapArPlaneListener hitResult
  • PHP 中的类模板就像 C++ 中的一样

    可以在中创建类模板PHP as in C PHP可能没有类似的语言结构 比如template中的关键词C 但也许有一些巧妙的技巧可以实现类似的功能 我有一个Point我想将其转换为模板的类 在类中 我使用类型参数 因此 对于每个类 我想传递
  • PHP 启动:无法加载动态库 'C:\xampp\php\ext\php_oci8_12c.dll' - 找不到指定的程序

    我们在php中连接oracle服务器面临一个大问题 我做了什么 Setp 1 安装 Windows 7 32 位 第2步 安装 XAMPP 32 包括 Apache 2 4 29 PHP 7 1 11 phpMyAdmin 4 7 4 Op
  • C++0x |为什么 std::atomic 使用 volatile 限定符重载每个方法?

    以下摘录自当前草案 说明了我的意思 namespace std typedef struct atomic bool bool is lock free const volatile bool is lock free const void
  • 使用 ExecuteNonQuery() 时返回值不正确

    我正在编写一个与 SQL Server 交互的 C 程序 我愚蠢地将查询字符串硬编码到 C 程序中 并希望将它们转换为服务器上的存储过程 由于某种原因 一个特定的 INSERT 语句 工作正常 不再有效 我不明白为什么 我什至运行了 SQL
  • 如何从十进制字符串中去掉零和小数点?

    当前输出以下代码 12 1 12 100 12 1000 12 00 12 12 0000 我怎样才能改变它 让它输出 12 1 12 1 12 1 12 12 12 Math Round 似乎就是这样 但它让我定义了我想要的小数位数 但我
  • Android java 百分比位图两幅图像之间的像素差异

    我需要在Android上的java中计算两个图像之间的像素差异 问题是我的代码返回不准确的结果 例如 我有 3 张非常相似的图片 但对于每张图片的比较 它返回显着不同的结果 pic1 vs pic2 1 71 pic1 与 pic3 0 0
  • 如何使用 Prisma 加密和解密数据?

    我已经研究了几周并寻找解决方案 但找不到针对我的具体问题的解决方案 我的前提 我使用NodeJS作为后端服务器 我通过Prisma管理数据 https www prisma io https www prisma io 我的客户要求对数据库
  • 识别标记并获取与其关联的对象的典型方法是什么?

    我在我的一个应用程序中使用地图 我想知道在点击标记时获取标记的关联对象的常见 有效方法是什么 我今天的计划是这样的 首先 我使用返回的标记创建对象的 ArrayList 和这些对象的 HashMapmMap addMarker 作为索引 A
  • 如何设置NSMenu/NSMenuItems的字体?

    我不知道如何在 NSMenu 中设置 NSMenuItems 的字体 样式 我在 NSMenu 上尝试了 setFont 方法 但它似乎对菜单项没有任何影响 NSMenuItem 似乎没有 setFont 方法 我希望它们都具有相同的字体
  • CSS 动画,单击时切换旋转

    我尝试让下面的插入符号在单击下拉菜单时旋转 180 度 在我尝试实现的解决方案中 它将插入符的类更改为单击时向上切换或向下切换 我第一次点击它时它会向上旋转 第二次它会立即返回到起始位置 然后再向上旋转 我闻到了脏代码的味道 添加此切换旋转