平移/旋转后重置 CSS 变换原点

2024-01-15

在 CSS 中翻译元素后,其变换原点仍保留在其原始位置。在这种特殊情况下,我希望变换原点为stay在所有变换期间相对于元素居中。我希望起源是这样的follow被变换的元素。我知道关于transform-origin属性,但这似乎需要我每次手动移动元素的原点......即使我可以在 JavaScript 中做到这一点,它似乎非常数学繁重并且不直观。

除了最后一个之外,下面的动画的行为完全符合预期wide回转。我希望最后一次旋转围绕实际元素的中心旋转。不是原来的位置。我怎样才能移动transform原点回到该元素的中心。有想法吗?

html, body {
  height: 100%;
  margin: 0;
  padding: 0;
}
body {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #fdfdfd;
  color: #aaa;
  font-family: Arial, 'sans-serif';
  font-size: 0.8rem;
  letter-spacing: 0.1rem;
}
.tri {
  width: 0; 
  height: 0; 
  border-left: 1rem solid transparent;
  border-right: 1rem solid transparent;
  border-bottom: 1rem solid #555;
  transform: scaleY( 2 );
  border-radius: 50%;
}
.status, .instr {
  position: absolute;
}
.status {
  top: 0;
}
.instr {
  bottom: 0;
}
<head>
  <style>
    .tri-bx {
      animation-name: start;
      animation-duration: 5s;
      animation-iteration-count: infinite;
    }
    @keyframes start {
      0% {
        transform: rotate( 0deg );
      }
      33% {
        transform: rotate( 315deg );
      }
      66% {
        transform: rotate( 315deg ) translate( 0, -5rem );
      }
      100% {
        transform: rotate( 720deg ) translate( 0, -5rem );
      }
    }
  </style>
</head>

<body>
  <div class="tri-bx">
    <div class="tri"></div>
  </div>
</body>

正如你所说,重置变换原点hard

但是,您可以继续在右侧添加变换,而之前的变换不变,您将得到您想要的。

(顺便说一句,在代码片段中,您不需要 HTML 中的 body 元素,并且样式最好放置在 CSS 编辑器中。)

.tri-bx {
  animation-name: start;
  animation-duration: 5s;
  animation-iteration-count: infinite;
}

@keyframes start {
  0% {
    transform: rotate( 0deg);
  }
  33% {
    transform: rotate( 315deg);
  }
  66% {
    transform: rotate( 315deg) translate( 0, -5rem) rotate(0deg);
  }
  100% {
    transform: rotate( 315deg) translate( 0, -5rem) rotate( 405deg);
  }
}

html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
}

body {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #fdfdfd;
  color: #aaa;
  font-family: Arial, 'sans-serif';
  font-size: 0.8rem;
  letter-spacing: 0.1rem;
}

.tri {
  width: 0;
  height: 0;
  border-left: 1rem solid transparent;
  border-right: 1rem solid transparent;
  border-bottom: 1rem solid #555;
  transform: scaleY( 2);
  border-radius: 50%;
}

.status,
.instr {
  position: absolute;
}

.status {
  top: 0;
}

.instr {
  bottom: 0;
}
<div class="tri-bx">
  <div class="tri"></div>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

平移/旋转后重置 CSS 变换原点 的相关文章

  • 如何重置弹性项目的“显示”属性

    我试图通过保留旧浏览器 特别是 IE8 IE9 和 Opera 10 的表格 将基于表格和 JS 的旧布局转换为具有向后兼容性的新 Flexbox 问题是没有display flex item覆盖旧样式display table cell
  • 缩小 HTML、CSS 和 Javascript 是一个坏主意吗?

    维基百科定义缩小 http en wikipedia org wiki Minification 28programming 29 as 从源代码中删除所有不必要的字符而不改变其功能的过程 这些不必要的字符通常包括空格字符 换行符 注释 有
  • 使用 bootstrap 将并排的网格位置交换到顶部和底部

    我有两个 div 内容和图像 它们在中等屏幕中并排放置 col md 6 内容 col md 4 图片 因此 当屏幕尺寸更改为小屏幕和 xs 屏幕时 这些 div 不应该并排放置 它们应该像这样顶部和底部对齐 image content 这
  • 是否可以使用“grid-template-areas”删除网格中空行的高度?

    我有一个包含八张 或更少 卡片的网格 我希望卡片自动放置在网格中 而不知道它们的宽度和高度 也就是说 宽度和高度应该在网格样式中指定 当我展示全部 8 张卡片时效果非常好 例子 grid template areas card 1 card
  • zone.js:140未捕获类型错误:无法读取属性“删除”

    我是 kendo ui 的新手 我在小提琴中开发了原型 删除确认窗口在那里工作正常 但是当我集成到我的代码库中时 我收到错误 Cannot read property remove at the line pai to delete rem
  • UIWebView 如何检测 被点击

    我知道下面的方法可以检测链接元素点击 但我想知道是否UIView可以检测是否img元素被点击 BOOL webView UIWebView webView shouldStartLoadWithRequest NSURLRequest re
  • HTML:什么是 `xmlns:fb="http://www.facebook.com/2008/fbml"`?

    What is xmlns fb http www facebook com 2008 fbml 我在很多地方都看到过最近的标签 它有什么作用 While I haven t seen it in use this is standard
  • 如何左对齐这些 Bootstrap 表单项?

    我是第一次使用 Bootstrap 在将此表单水平向左对齐时遇到很多麻烦 列表项是水平的 因为它们应该是水平的 但我希望控制标签 表单标签的 Bootstrap 类 全部位于向左浮动的相同位置 该表单包含在跨度为 7 的 div 中 因为我
  • CSS 中的分层图像 - 可以将 2 个图像放在同一个元素中吗?

    假设我在 CSS 中为网页设置背景图像 如下所示 body font size 62 5 Resets 1em to 10px font family Verdana Arial Sans Serif background color 9D
  • CSS 聚焦于出现的输入 div [重复]

    这个问题在这里已经有答案了 我有这样的代码 div class lighter div
  • 将多个 CSS 文件连接成一个

    将多个 CSS 文件连接成一个 CSS 文件的最佳方法是什么 我想减少以下 进入 简单地做cat css css gt css 1 3
  • 鼠标移动时画布拖动

    我正在尝试构建一个可以使用鼠标移动拖动的画布 我做了一些我无法理解的错误 因为一开始似乎有效 然后出现了一个增量错误 使画布移动得太快 考虑以下代码 window onload function var canvas document ge
  • 如何默认或通过 CSS 将详细信息元素设置为 OPEN

    HTML5 添加了两个新元素 可用于标记文章的目录 details and summary 详细信息元素默认为关闭状态 隐藏除摘要元素之外的所有内容 单击时 它会展开以显示其内容 当它执行此操作时 它会向详细信息元素添加一个 open 属性
  • 无需重定向的 HTML 页面提交

    有没有什么方法可以在不使用ajax的情况下提交html表单而无需从当前页面重定向 你可以设置一个target 为您form 这样您就可以将表单提交到新选项卡 target blank 或一个小的 隐藏的iframe target nameo
  • 指定 HTML5 输入类型 = 日期的值输出?

    我想将本机日期选择器添加到我的应用程序中 该应用程序当前使用遗留的本地系统 日期输入支持尚未广泛普及 但如果我可以基于兼容性提供这两种实现 那就太理想了 有没有办法指定 HTML 日期选择器给出的值的输出 歌剧的默认设置是yyyy mm d
  • @fontface - 禅宗购物车中的 403 禁止错误

    我不确定这是否是发布此内容的正确位置 因为我不知道问题出在哪里 基本上 字体现在对我来说真的很痛苦 而且没有任何效果 我尝试从 google fonts 加载字体 但遇到了 IE 问题 所以我决定下载它们并自己提供服务 但现在它无法在任何浏
  • 带有覆盖CSS的背景图像

    我如何在 CSS 中设计带有叠加层的背景图像 就像这个示例图像一样 这是代码 我想添加tour类到背景图像和叠加效果 div class tour div class container div class row div class co
  • iPhone 上的锁定方向 UIWebView

    有没有办法锁定 UIWebView 的方向 使用 Obj C JS 还是 Html 我不想有按钮或任何东西 我只想在应用程序打开时将其锁定为纵向 好像这个堆栈溢出帖子 https stackoverflow com questions 43
  • 粘性背景图像/使用 CSS

    我目前正在创建我的第一个网站 并且即将完成 我在标题下为主体使用背景图像 我发现每个页面都有一个问题 因为它们的高度都不同 这使得我背景图像的当前设置放大图片以适合整个页面 我想做的是将背景图像设置为 粘性 我的想法是 背景图像将直接位于标
  • 在什么情况下,使用 HTTP/2 单独加载图像会比使用 HTTP/1.1 中的精灵一次加载所有图像慢?

    HTTP 2 使多路复用连接成为可能 从而消除了与服务器的多个连接的需要 通过单个连接 可以将许多单独的图像发送到客户端 这避免了将多个图像组合成一个并使用 CSS 将其分开的旧图像精灵模式 我很好奇精灵在 HTTP 2 世界中是否仍然会更

随机推荐

  • Python3 - 以编程方式更改 PSD 图层的可见性

    是否可以在不使用 Photoshop 的情况下以编程方式更改 PSD 中的 PSD 图层可见性 我确实检查了 Python 的 PSD 库的各种实现 但它们最好的做法是返回可见性值 例如psd tools 但可见属性是只读的 所以我无法更改
  • Javascript 中的编码约定:括号之间使用空格

    根据 JSHint Javascript 程序员不应在第一个括号之后和最后一个括号之前添加空格 我见过很多添加空格的优秀 Javascript 库 如下所示 foo bar bad according to JSHint 而不是这样 foo
  • 不应使用 MISRA C 2012 规则 20.5 #undef

    我正在努力消除违反规则 20 5 的行为 示例代码 define VAL 2 int32 t func void int32 t n1 VAL undef VAL define VAL x x x return VAL n1 在不改变任何其
  • 如何将 React Native Promise 桥接到 Swift

    各位软件爱好者大家好 我目前正在开发一个 React Native 项目 我需要添加一些用 swift 编写的逻辑 我能够通过桥接 Objective C 和 Swift 来触发基本的 swift 函数 当我尝试用承诺来做某事时 问题就出现
  • docker-compose:在詹金斯上找不到命令

    我有一个 docker compose 文件 version 3 services mysql image mysql latest container name locations service mysql environment MY
  • R XTS 对象的逐月增长百分比

    我如何绘制以下数据的逐月增长情况 A 2008 07 01 0 2008 08 01 87 2008 09 01 257 2008 10 01 294 2008 11 01 325 2008 12 01 299 以 dput 格式 在约书亚
  • 更新 hadoop HDFS 文件

    我是 Hadoop 的新手 我一直读到 HDFS 主要是 一次写入 多次读取 我有一个用例 我可能需要对 HDFS 中存储的文件进行修改 我一直在研究是否有任何方法可以做到这一点 我的问题是是否可以将 HDFS 文件加载到 HBase 中
  • 使用 RVM 在 OS X 上安装 Ruby 1.9.3 时出现“没有适用于 gcc46 的可用公式”:

    我已经安装了 Homebrew 我正在尝试使用以下命令安装 RVM rvm install 1 9 3 head 我收到此错误 Installing required packages gcc46 Error running require
  • 如何在 github actions 中使用私有 docker 镜像

    我正在尝试在 github actions 中设置一个运行私有 docker 映像的作业 我将使用容器选项在该 docker 映像内进行构建 link https docs github com en actions reference w
  • Google Play 游戏服务无法登录

    几天来我一直在为这个问题而头撞墙 尽管阅读了许多描述 GPS 登录失败问题 解决方案的帖子 但我一直无法找到问题的解决方案 简而言之 我正在使用 LibGDX 框架在 Android Studio 中开发一款游戏 并添加了 BaseGame
  • IE10 上触摸点之间的间距

    我正在开发插件 flot touch js 它在 webkit 浏览器的图表上添加触摸交互性 平移和缩放 我也想让它在 IE10 上运行 但是我不知道如何恢复触摸点之间的空间 我需要这个来计算比例 在 webkit 浏览器上 我们可以使用这
  • iOS 检查 WiFi 辅助是否已启用

    我正在尝试检查 WiFi 辅助是否已启用 当我连接到接入点获取一些数据时遇到问题 当我的连接状况不佳时 我的蜂窝数据会被使用并干扰我的接入点 有什么方法可以检查该选项是否启用 好吧 我想我能帮上一点忙 你需要check SCNetworkR
  • 路由到 Laravel 5 子文件夹中的控制器

    这是我的routes php Route get Panel PanelController index 这是我的文件夹 Http Controllers Panel PanelController php 这是我的控制器 namespac
  • 如何使用 Google Assist API 实现 Google Assistant

    我一直在查看并阅读有关 Google Now on Tap 的内容 来自http developer android com training articles assistant html http developer android c
  • 如何从元数据查找 OData 版本

    我可以访问 OData 服务 现在我需要找到该服务的 OData 版本 metadata 中有版本属性 但我不知道该选哪一个 我需要从
  • 如何保留 HTML
     标记中包含的文本的空白缩进,不包括文档中 
     标记的当前缩进级别?                
                

    我正在尝试在网站上显示我的代码 但在正确保留空格缩进方面遇到问题 例如给出以下代码片段 Here is my code pre def some funtion return Hello World end pre 这在浏览器中显示为 He
  • 如何在pyspark中将数据分成组

    我需要在时间序列数据中找到组 数据样本 我需要输出列group基于value and day 我尝试过使用 lag lead 和 row number 但最终一无所获 似乎每次值发生变化时您都想增加该组 如果是这样 这就是一种缺口和岛屿问题
  • 如何修复类型“Future”不是“String”类型的子类型 Flutter

    颤振初学者在这里 我收到此错误 type Future
  • Python 中的函数重载:缺失 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions As 函数重载 http web a
  • 平移/旋转后重置 CSS 变换原点

    在 CSS 中翻译元素后 其变换原点仍保留在其原始位置 在这种特殊情况下 我希望变换原点为stay在所有变换期间相对于元素居中 我希望起源是这样的follow被变换的元素 我知道关于transform origin属性 但这似乎需要我每次手