使用 JavaScript 对 DIV 进行动画处理会在 Chrome 上呈现工件

2023-12-29

作为一个实验,我尝试在 JavaScript 中复制 AS3 的 Sprite 功能,而不使用画布对象。我认为使用绝对定位的 div 并操作它们的 css 属性是理所当然的,但是在 Chrome 中,动画引入了奇怪的工件(似乎是因为重绘问题)。

我找不到我做错了什么?事实上,代码非常简单。以下是我尝试过但没有帮助的一些要点:

  • 使用相对定位的 div(与绝对定位相反。)
  • 使用边距(与顶部和左侧属性相反。)
  • 将对象直接附加到 body(而不是附加到容器 div。)
  • 使用 setTimeout(与 requestAnimationFrame 相反)

您可以在这里看到一个简化的小提琴:http://jsfiddle.net/BVJYJ/2/ http://jsfiddle.net/BVJYJ/2/

EDIT: http://jsfiddle.net/BVJYJ/4/ http://jsfiddle.net/BVJYJ/4/

在这里您可以在我的浏览器上看到工件:

这可能是我的设置中的一个错误(Windows 7 64 位、Chrome 21.0.1180.75)。没有其他浏览器表现出这种行为。如果有人能评论我可能做错的事情,我将不胜感激。我更好奇这背后的原因,而不是顺便说一句的解决方法。也就是说,任何解释都是受欢迎的。 :)

编辑:示例代码中存在一个错误,导致即使我印象中使用了 RAF,但仍然使用了 setTimeout。 requestAnimationFrame 通过基本转换解决了问题,但问题仍然存在于 CSS 转换(例如旋转)中。


我的 liteAccordion 插件也有同样的问题。可以通过将要设置动画的元素的背面可见性设置为隐藏来修复此问题,如下所示:http://jsfiddle.net/ZPQBp/1/ http://jsfiddle.net/ZPQBp/1/

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

使用 JavaScript 对 DIV 进行动画处理会在 Chrome 上呈现工件 的相关文章

随机推荐

  • 随机数表现得很奇怪,不是完全随机的

    在我的 NET 游戏中 我的 rand 函数决定玩家的五个角色中的每个角色应承受多少伤害 但是第一个角色似乎总是位于标度的底部 而最后一个角色则位于顶部 所以在我的Character 0 伤害很少比最小兰特值大 1 以上 并且对于每个Cha
  • IE 9 和 Firefox 13 中的内容处置被忽略

    我正在尝试动态创建一个内联 PDF 当用户选择保存它时 会提示我的自定义文件名 根据文档 http help adobe com en US ColdFusion 9 0 CFMLRef WSc3ff6d0ea77859461172e081
  • 获取应用程序的第一个 Key Vault 机密值时出现异常

    在我的应用程序中 当我的应用程序获取第一个密钥保管库机密的值时 我遇到异常 仅当我从异常设置中打开 公共语言运行时异常 时 才会出现异常 我得到的例外是 Microsoft Rest TransientFaultHandling HttpR
  • java.lang.ClassFormatError:类中的字段修饰符非法

    我正在尝试使用实现一个简单的 TabGroup环境服务 http tapestry apache org environmental services html 我的代码如下所示 public class TabPanel Inject p
  • 如何仅使用 SwiftUI 从 @main App 访问 NSWindow?

    At this answer https stackoverflow com a 60359809 4307080该解决方案适用于 Scene 和 swiftUI 但是使用 main 像 main struct MyApp App Stat
  • 如何指定 postgres 表的主键种子?

    我有一个 postgres 表 其中包含数据 其中主键已由注入数据的代码设置 假设主键是 0 49 如何指示 postgres 在下一次插入的主键列上以 50 开头 目前 所有没有设置主键的插入都会导致重复的 ID 问题 因为它从 0 开始
  • 尽管 magic_quotes 已关闭,但仍转义字符串?

    我在 php ini 中禁用了 magic quotes 但我的表单中仍然会出现转义字符串 注意 我在 WordPress 的主题中运行它 我实际上已经弄清楚了这一点 只是想将我的解决方案留在这里 以防其他人可能会发现它有用 WordPre
  • 访问对话流履行中先前的后续意图参数

    我使用内联编辑器中提供的默认对话流代码 基于dialogflow fulfillment 0 5 0 来整理多个后续意图中给出的所有参数 我有一个设置 其中后续意图提出问题 从而产生提出所有问题的最终意图 从对话框流控制台内以前的意图中提取
  • 为什么 element.click() 在 Cefsharp 中不起作用?

    我尝试执行下面的脚本Cefsharp单击 DIV 元素 但不起作用 private static string ClickUnreads function let chatsEl document querySelectorAll infi
  • 简化的行梯形形式

    R中是否有一个函数可以产生reduced row echelon form的矩阵 This http cran r project org doc contrib Hiebeler matlabR pdf参考文献说没有 你同意 I don
  • Objectify 库可以在 GAE 之外使用吗?

    我想使用 Google Cloud 数据存储区 不过 我没有使用GAE 我还可以使用 Objectify 库吗 如果是这样怎么办 该文档没有说明如何配置它以针对数据存储进行身份验证 不 你不能 这里有一个来自创作者的评论 https gro
  • 如何在 C# 中基于现有委托类型创建新的委托类型?

    有什么方法可以基于现有的委托类型创建新的委托类型吗 就我而言 我想创建一个委托MyMouseEventDelegate其功能与EventHandler
  • 如何隐藏 Mac/OSX 拖放 JTable 选择框

    在 JTable 上执行拖放操作时 拖动时会出现所选单元格 选择框 的轮廓 我怎样才能覆盖该行为并且除了特殊光标之外不显示任何内容 在 Windows 和 OSX 中运行以下代码显示了我想要覆盖的行为 import java awt Bor
  • ASP.NET 身份检查用户角色不起作用

    我有一个 ASP NET MVC 5 应用程序 我使用标准 ASP NET 身份提供程序进行用户和角色管理 重要的是我使用自己的存储库项目中的 IdentityUser 但这似乎没问题 我可以注册 登录 编辑用户并管理他们的角色 我使用以下
  • Azure Devops - 按代理池 ID 获取发布定义

    我试图使用 NET 客户端库查找配置为使用特定代理池的所有构建和版本 假设agentPoolId 我可以得到所有的构建定义 如下所示 connection is of type VssConnection using var buildCl
  • 配置 EMR 以使用 s3a 而不是 s3 进行 Spark.sql 调用

    我对 Spark sql 的所有调用都失败 并在堆栈跟踪中出现错误 1 below 更新 2我已经把注意力集中在这个问题上 它是 sts AssumeRule 的 AccessDenied 任何线索都值得赞赏 User arn aws st
  • 在 Spark 2.3.0 的结构化流中禁用 _spark_metadata

    我的结构化流应用程序正在写入镶木地板 我想摆脱它创建的 spark metadata 文件夹 我使用了下面的属性 看起来不错 conf spark hadoop parquet enable summary metadata false 当
  • 如何从 Java 中的套接字获取客户端名称?

    抱歉 简单的问题 但我无法使用谷歌或教科书在任何地方找到答案 我有一个简单的服务器 用户通过 java 中的套接字连接到该服务器 我想使用这个 Java 套接字来检索用户客户端名称 这可能吗 我知道我可以使用 getInetAddress
  • 数据绑定到以编程方式创建的数据表

    假设我有一个这样的数据表 DataTable dt new DataTable Woot dt Columns AddRange new DataColumn new DataColumn ID typeof System Guid new
  • 使用 JavaScript 对 DIV 进行动画处理会在 Chrome 上呈现工件

    作为一个实验 我尝试在 JavaScript 中复制 AS3 的 Sprite 功能 而不使用画布对象 我认为使用绝对定位的 div 并操作它们的 css 属性是理所当然的 但是在 Chrome 中 动画引入了奇怪的工件 似乎是因为重绘问题