Chrome 显示 Lottie 动画模糊

2024-02-14

我遇到了缩放 Lottie 动画的问题,Chrome 模糊了动画。当动画缩放时,这一点尤其明显。

在我的示例中,原始动画的尺寸为 842x596px,渲染效果越小,效果越差:

如果您想在 Chrome 浏览器中重现它,这里是示例代码:

lottie-player {
  border: 1px solid lightblue;
}

body {
  color: lightgray;
}
<script src="https://unpkg.com/@lottiefiles/lottie-player@latest/dist/lottie-player.js"></script>

<!--
<lottie-player src="https://assets6.lottiefiles.com/packages/lf20_srq2xawa.json" background="transparent" speed="1" style="width: 300px; height: 300px;" loop controls autoplay></lottie-player>
300x300px 
-->
                    
<lottie-player src="https://assets6.lottiefiles.com/packages/lf20_srq2xawa.json" background="transparent" speed="1" style="width: 200px; height: 200px;" loop autoplay></lottie-player>
200x200px

<lottie-player src="https://assets6.lottiefiles.com/packages/lf20_srq2xawa.json" background="transparent" speed="1" style="width: 150px; height: 150px;" loop autoplay></lottie-player>
150x150px
 
 <lottie-player src="https://assets6.lottiefiles.com/packages/lf20_srq2xawa.json" background="transparent" speed="1" style="width: 100px; height: 100px;" loop autoplay></lottie-player>
100x100px
 
 <lottie-player src="https://assets6.lottiefiles.com/packages/lf20_srq2xawa.json" background="transparent" speed="1" style="width: 50px; height: 50px;" loop autoplay></lottie-player>
50x50px

似乎已经有其他问题有类似的问题,但没有提供进一步的信息或没有提供有效的解决方案:

  • Lottie 动画仅在 Chrome 上模糊 https://stackoverflow.com/q/72346608/3001970
  • Chrome 上的 CSS 动画内容模糊 https://stackoverflow.com/questions/59609887
  • 使用 CSS 变换后文本模糊:scale();在 Chrome 中 https://stackoverflow.com/questions/14677490

该问题是由 Lottie 动画内的 SVG 上的以下样式标签引起的:

transform: translate3d(0px, 0px, 0px);

最简单的解决方案是通过 JS 删除此标签:

document.addEventListener("DOMContentLoaded", function(){

  let elements = document.getElementsByTagName('lottie-player');

  for (var i = 0; i < elements.length; i++) {
  
    elements[i].addEventListener('play', (event) => {
      // console.log(event.target.shadowRoot.querySelector('svg').style.transform);
      event.target.shadowRoot.querySelector('svg').style.transform = '';
    });
    elements[i].play(); // trigger (again)

  }
});
document.addEventListener("DOMContentLoaded", function(){

  let elements = document.getElementsByTagName('lottie-player');

  for (var i = 0; i < elements.length; i++) {
  
    elements[i].addEventListener('play', (event) => {
      // console.log(event.target.shadowRoot.querySelector('svg').style.transform);
      event.target.shadowRoot.querySelector('svg').style.transform = '';
    });
  
  }

});
lottie-player {
  border: 1px solid lightblue;
}

body {
  color: lightgray;
}
<script src="https://unpkg.com/@lottiefiles/lottie-player@latest/dist/lottie-player.js"></script>

<!--
<lottie-player src="https://assets6.lottiefiles.com/packages/lf20_srq2xawa.json" background="transparent" speed="1" style="width: 300px; height: 300px;" loop controls autoplay></lottie-player>
300x300px 
-->
                    
<lottie-player src="https://assets6.lottiefiles.com/packages/lf20_srq2xawa.json" background="transparent" speed="1" style="width: 200px; height: 200px;" loop autoplay></lottie-player>
200x200px

<lottie-player src="https://assets6.lottiefiles.com/packages/lf20_srq2xawa.json" background="transparent" speed="1" style="width: 150px; height: 150px;" loop autoplay></lottie-player>
150x150px
 
 <lottie-player src="https://assets6.lottiefiles.com/packages/lf20_srq2xawa.json" background="transparent" speed="1" style="width: 100px; height: 100px;" loop autoplay></lottie-player>
100x100px
 
 <lottie-player src="https://assets6.lottiefiles.com/packages/lf20_srq2xawa.json" background="transparent" speed="1" style="width: 50px; height: 50px;" loop autoplay></lottie-player>
50x50px
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Chrome 显示 Lottie 动画模糊 的相关文章

随机推荐

  • 表视图中的文本标签太长,会影响正确的详细信息(detailTextLabel)被覆盖或不显示

    我已经为该单元格设置了一个文本 但是 它显示的文本太长 这会影响正确的详细文本被覆盖或不显示 我无法更改它 因为我需要下一个视图控制器中的名称 是否可以使其仅显示文本 后跟 EXAMPLE 电气电子工程 01 gt 传奇 Electrica
  • 如何在插件架构中做到免注册COM

    我们使用清单文件来实现免注册 COM 正如我在这另一个问题 https stackoverflow com questions 465882 generate manifest files for registration free com
  • 在哪里添加 String 原型

    我目前正在 Titanium Studio 中使用 JavaScript CommonJS 并且有一个关于原型设计的问题 假设我想向现有的类添加一个新函数 例如 String prototype trim function return t
  • 运行应用程序中的 Grails 3.0 静态 html

    之前曾就 grails 2 3 4 提出过类似的问题 我觉得很奇怪 我找不到一种方法来做到这一点 因为这对我来说似乎是一个标准用例 我只是想在运行 grails run app 时提供 html 页面 包括它们链接的 css 和 js An
  • 使用 asyncio 并行化生成器

    我的应用程序从慢速 I O 源读取数据 进行一些处理 然后将其写入本地文件 我已经用生成器实现了这个 如下所示 import time def io task x print requesting data for input s x ti
  • 您能否返回适用于任何可能的错误类型的结果?

    我想使用多个库 每个库都有自己的错误类型 我并不真正关心每个特定板条箱的错误类型 我想使用 习惯用法是使用那些返回 a 的 crate 的方法Result type 我也不想解开这些值 如果遇到错误 这会导致恐慌 我可能只是想使用传播不同的
  • 光滑的旋转木马 - 强制幻灯片具有相同的高度

    我在使用 Slick carousel JS 插件时遇到了多个问题幻灯片显示它们具有不同的高度 我需要幻灯片相同高度 但是对于 CSS flex box 它不起作用 因为幻灯片具有冲突的 CSS 定义 另外 我在论坛和网络上没有找到任何有用
  • 单例类与具有静态成员的类

    尽管关于该主题的主题有很多 但我仍然不清楚何时选择哪种方法 我希望通过讨论一个具体的例子 我最终能 明白 注意 我这里的语言是 Cocoa 尽管一般问题不是特定于语言的 我有一个类 TaskQueue 我想用它来 从我的代码中的任何位置访问
  • 在 Java 8 中使用两个具有相同签名的默认方法实现两个接口

    假设我有两个接口 public interface I1 default String getGreeting return Good Morning public interface I2 default String getGreeti
  • 如何将 jPCT 与 Vuforia SDK 结合使用?

    有人可以概述一下混合 Jpct 和 Qualcomm Vuforia SDK 的情况吗 将 Java 渲染引擎与 Vuforia 结合使用是个好主意吗 基本上 QCAR 的全部工作就是计算变形的预定义目标图像的变换矩阵 它为您提供了两个重要
  • 新的 Angular2 路由器配置

    回到使用已弃用的路由器时 我能够执行 router config 并传入一个对象 事实是 路由器本身在应用程序启动后进行了一些配置 该对象具有相同的 模板 就像我使用了 RouterConfig 一样 我正在寻找的是是否有一种方法可以像这样
  • POST 403 Forbidden for Chrome 扩展(后端为 Django)

    我以前从未开发过 Chrome 扩展程序 目前正在为我的 Django 应用程序开发 Chrome 扩展程序 具有链接提交功能 当我尝试使用扩展程序提交链接时 出现以下错误 POST http 127 0 0 1 8000 add link
  • 找到未使用的 Javascript 函数?

    我的应用程序中有大约 100 个 js 文件 我需要从这些文件中找到未使用的函数 哪个编辑器或工具可以帮助我 看看JSLint http jslint com help html代码质量工具
  • 如何在 Windows Phone 中对 LongListSelector 进行排序

    我希望能够按升序或降序对绑定到 LongListSelector 的数据进行排序 我无法将排序后的数据绑定到我的 LongListSelector 最初 我的解决方案没有尝试实现排序 而是有效的 但我相信在涉及排序时我遗漏了一些东西 我也尝
  • Google Play Android .apk 上传“无法运行 aapt dump badging”

    自从我上次将应用程序上传到 Google Play 开发者控制台以来已经快一年了 这是我已经签名并压缩对齐的 Cordova 应用程序 按照我过去成功使用的相同流程 我现在收到以下错误 上传失败 无法使用 aapt dump badging
  • 使用 POST 在 R 中抓取动态表

    我正在努力刮这张桌子 http myfwc com wildlifehabitats managed alligator harvest data export 使用 R 到目前为止 我使用下面的代码只得到了 27 行 我想取回所有条目 并
  • 在 iOS 上通过 上传存储在云服务上的文件 0 字节

    我无法弄清楚为什么某些从 iOS 上传到我们服务器的内容会导致空文件 上传页面是一个简单的表单 使用 POST 和 enctype 作为 multipart form data 该问题似乎仅在用户执行以下操作时才会出现 正在使用 iOS 尝
  • 已分析与未分析:存储大小

    我最近开始使用 ElasticSearch 2 据我了解analyzed vs 未分析在映射中 not analyzed 在存储中应该更好 https www elastic co blog elasticsearch storage th
  • 在Android上加载依赖的共享库

    我正在移植大量本机代码和几个相互依赖的库 加载代码失败 因为 Android 链接器仅查找依赖项 system lib 并且不在应用程序安装目录中 data data com packagename nnn lib 作为第一个解决方法 我使
  • Chrome 显示 Lottie 动画模糊

    我遇到了缩放 Lottie 动画的问题 Chrome 模糊了动画 当动画缩放时 这一点尤其明显 在我的示例中 原始动画的尺寸为 842x596px 渲染效果越小 效果越差 如果您想在 Chrome 浏览器中重现它 这里是示例代码 lotti