css 过渡:当用户设置了辅助功能选项“减少运动”时,触发过渡结束不会触发

2024-03-05

本周我一直在寻找我在网页中引入的“错误”。我转向 CSS 过渡。具体来说:我用它来打开和关闭菜单。一位用户报告说,一旦打开菜单,他就无法关闭菜单。他有两次安装都出现了这个问题,而且我没有收到任何报告。我终于找到了问题的原因。操作系统的辅助功能设置中有一个设置可以“禁用或减少”过渡或动画。 (参见屏幕打印。)有趣的是:在 Windows 中,只有 Firefox 确实遵循此设置:IE11、Edge 和 Chrome 忽略它,而我的菜单就像一个魅力。在 OS X 中:启用此选项后,Safari 和 Firefox 的菜单都会损坏。 Chrome 做了忽略技巧。

这是我的问题。有人以前经历过这种情况吗?我如何检测用户是否启用了这个“减少动画”选项。在这种情况下,我将不得不以另一种方式从屏幕上删除菜单......

Windows 10:

OS X:


我找到了解决方案! JavaScript 函数https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia(直到今天我还不知道)返回一个可用于更改页面行为的对象。

我创建了一个工作示例。这是从以下内容复制的片段/来源:https://webkit.org/blog-files/prefers-reduced-motion/prm.htm https://webkit.org/blog-files/prefers-reduced-motion/prm.htm当您运行该代码片段时,它会实时响应操作系统控制面板中更改的设置。

var motionQuery = matchMedia('(prefers-reduced-motion)');
function handleReduceMotionChanged() {
    document.getElementById('prmValue').innerText = motionQuery.matches ? 'on' : 'no-preference or unsupported';
}
handleReduceMotionChanged(); // trigger this once on load to set up the initial value
motionQuery.addListener(handleReduceMotionChanged); // Note: https://webkit.org/b/168491
<h2>Using JavaScript to access the current value</h2>
<div id="indicator">Prefers reduced motion: <span id="prmValue">unsupported</span> <a href="https://webkit.org/b/168491" title="Outstanding bug: 168491" aria-label="Outstanding bug: 168491"><sup>1</sup></a></div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

css 过渡:当用户设置了辅助功能选项“减少运动”时,触发过渡结束不会触发 的相关文章

  • 使用 Javascript 在 Imacros 中循环

    我如何使用 javascript 循环 imm imacros 脚本 我搜索了一下 发现了这个 for i 0 i lt n i iimPlay marconame iim 但当我使用它时 我的浏览器 Firefox 18 挂起 for i
  • 如何通过 HTML 按钮播放声音

    我目前通过网站播放音乐的方法是通过 HTML 音频标签 不过我希望能够通过 HTML 按钮来播放它 该按钮应该能够在播放和停止之间切换音乐 我在 JSFiddle 创建了一个示例 但不知道如何实现它 有人可以告诉我如何使用我的 JSFidd
  • 如何在 d3 js 中突出显示从根到选定节点的路径?

    我使用 d3 js 创建了一棵树 现在我创建了一个下拉菜单 其中包含树中所有节点的列表 现在 从下拉菜单中选择一个节点时 我想突出显示从根到该特定节点的路径 这个怎么做 首先创建一个 flatten 函数 它将分层数据变成一个 n 数组 f
  • 如何使用 jQuery 向表中添加新行,并为其分配递增的 id

    我有一个现有的 HTML 表格 它是用户输入 GPS 点的表单的一部分 用户还可以选择上传 GPS 数据点 我想要一个用户可以按下的按钮 其中一些 Javascript 会向表中添加一个或多个新行 但新行必须继续增加表中使用的名称和 id
  • AJAX:检查字符串是否为 JSON?

    我的 JavaScript 有时会在这一行崩溃 var json eval this responseText 当争论时会导致崩溃eval 不是 JSON 在进行此调用之前有什么方法可以检查字符串是否为 JSON 我不想使用框架 有什么方法
  • KeyboardEvent.keyCode 已弃用。这在实践中意味着什么?

    根据 MDN 我们绝对应该not正在使用 keyCode财产 它已被弃用 https developer mozilla org en US docs Web API KeyboardEvent keyCode https develope
  • css 计数器在 Internet Explorer 中无法工作以获取隐藏内容 - 如何修复?

    我们想要一些编号列表 并发现了这个很酷的计数器 您可以在 css 中使用它来让浏览器为您计算数字 ol instructions counter reset instructions section ol instructions gt l
  • 使水平滚动条始终可见,即使底部不在视图中

    我将用一个片段来开始这个问题 该片段几乎显示了我想要完成的任务 wrapper overflow hidden display flex sidebar min width 200px background 333 color FFF co
  • React无限滚动scrollableTarget动态获取id?

    我在我的项目中使用react infinite scroll component 如何让scrollableTarget动态获取item id 我试过这样scrollableTarget item id 但它不起作用 必须与该 div 具有
  • jquery:当我在文档上附加一层时,如何重置文档滚动条?

    当我在文档上附加图层时 如何重置文档滚动条 例如 它就像 Facebook 页面 当您有一个很长的文档时 您需要向下滚动才能查看较旧的图像 帖子 当你点击照片时 滚动条发生了变化 从顶部开始 但文档页面根本不跳转 当关闭照片查看器图层时 滚
  • Keycloak javascript 适配器 `keycloak.init` 加载 404 iframe

    我正在尝试使用 javascript 适配器将 Keycloak 集成到我的客户端应用程序keycloak js 但是 我似乎无法让它发挥作用 这是我的代码 const keycloak new Keycloak realm my real
  • 如何在 e2e AngularJS 测试中进行文件上传?

    在我的一种观点中 我有一个文件上传控件 它支持通过拖放或单击按钮后打开的标准文件对话框上传文件 How to do this in my e2e tests1 1 Just one of the two options will be en
  • WebRTC:通道、轨道和流与 RTP SSRC 和 RTP 会话之间的关系

    来自 Mozilla 网站 https developer mozilla org en US docs Web API Media Streams API https developer mozilla org en US docs We
  • 从多维无穷大数组中删除数组元素

    我想删除一个特定元素 例如 我想删除元素id 76在下面的数组中 而且 数组可以无限地组合在一起 这里的问题是我无法刷新页面 因为我使用 Vue js 进行即时操作 如果我能做到这一点 我的下一个问题可能是如何在我现在想要的地方添加一个元素
  • 替换两个引号之间的字符串

    我想转动一根绳子str hello my name is michael what s your s into hello my name is span class name michael span 我怎样才能在 JavaScript
  • span 和 iframe 正文中的宽度(以像素为单位)

    我需要知道 a 的宽度 nbsp 以像素为单位 以及是否取决于字体大小 另外 页面中不同元素的情况是否有所不同 还有 就是 nbsp 与常规不同 目的 nbsp 不间断空格 位于正常空格之上是为了防止单词之间出现换行 您可以使用多个 nbs
  • 如何在 SVG 元素上使用箭头标记?

    我需要在 d3 js 中创建一个箭头 但我找到的只是带有节点图的示例 我需要的是简单地制作一个从 A 点到 B 点的箭头 我尝试实现以下示例中的部分代码 http bl ocks org 1153292 http bl ocks org 1
  • 我可以使用 jQuery 动态创建文件(及其内容)吗? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 这是我的 HTML 代码 ul li
  • 如何更改订阅值?使用 rxJS

    我正在创建一个计时器 需要你的帮助 我刚刚学习 Angular 和 rxJS 对此我有一些疑问 我正在创建一个具有启动 停止 暂停 重置功能的计时器 并且 btn Reset 必须将我的计时器 暂停 到 300 毫秒 怎么做 D 我的启动定
  • 如何调试 Gulp 任务?

    如何调试我的中定义的 gulp 任务gulpfile js使用诸如 Google Chrome 调试器之类的调试器逐行单步执行任务的代码 对于 Node js 6 3 版本 您可以使用 inspect flag https nodejs o

随机推荐

  • 带负值和高度的 CSS 相对定位

    我试图对 DIV 元素进行负向定位 在示例中是 content 但我的问题是 div 的容器 wrapper2 获得了太多高度 实际上是 content 给出的高度 但正如我 我将内容向上移动 我想相应地降低 wrapper2 的高度 在这
  • 删除 MVC 中的浏览器自动完成功能

    我目前正在尝试删除用户浏览器完成的表单自动完成功能 这可能会导致一些关键行为 因为它填充了密码字段 我已经将自动完成属性添加到我的所有文本框字段中 但是当我尝试使用 Firefox 时 它仍然会将我当前的登录信息加载到字段中 有谁知道如何解
  • JScrollPane 未添加到 JTextArea

    我看到了几个类似这个问题的问题 但我无法解决这个问题 我无法得到JScrollPane可见于JTextArea 谁能指出我哪里做错了 谢谢 package experiement import java awt Dimension impo
  • openlayers 策略:ol.loadingstrategy.bbox 不适用于 wfs 功能

    我尝试使用此代码使用 openlayers 4 最大 1000 可视化 wfs 中的地块 但是视图地图的每次移动或缩放时范围不会改变 或者新功能不会加载到图层中 var parcellaireSource new ol source Vec
  • MinGW GCC:“未知转换类型字符'h'”(snprintf)

    好的 我在 Windows 7 上使用 MinGW GCC 4 6 2 编译 C 文件时遇到了一个奇怪的问题 该文件包含以下 C 代码 include
  • 无法访问在 docker 内创建的 docker-compose 容器

    我有一个docker compose yml在端口上启动简单 HTTP 回显服务的文件8800 version 2 services echo server image luisbebop echo server container nam
  • CSS 比较运算符

    我需要定位占其父 div 80 以上的 div 作为进度条 考虑到我们可以瞄准specificCSS 宽度 data width 80 我们如何瞄准比较 这做到了not在 Firefox 或 Chrome 中工作 data width gt
  • Powershell / Perl:将多个 CSV 文件合并为一个?

    我有以下 CSV 文件 我想将它们合并到一个 CSV 中 01 csv apples 48 12 7 pear 17 16 2 orange 22 6 1 02 csv apples 51 8 6 grape 87 42 12 pear 2
  • 如何在Windows系统上安装geckodriver

    我正在尝试安装 webdriver 为了打开 Firefox 我需要安装 geckodriver 并将其安装在正确的路径中 首先 安装 geckodriver 的下载链接仅允许您安装非可执行文件 那么有没有办法让它成为可执行文件呢 其次 我
  • 无法探测视频 laravel ffmpeg

    我一直在关注这个教程https github com pascalbaljetmedia laravel ffmpeg https github com pascalbaljetmedia laravel ffmpeg我正在尝试调整我的视频
  • 具有相同名称的多个隐藏输入,始终检索最后一个输入[重复]

    这个问题在这里已经有答案了 foreach graphEdge as graphNode echo div class form check mb 3 div
  • 使用 Camel 的表达式语言获取并格式化昨天的日期

    我在 Camel 的路径中使用日期 fileName date now dd MM yyyy 但我现在需要的是 1天 那可能吗 嗯 不直接 简单语言中的 date 对象只能获取当前时间 或者您放置在标头中的某个时间值 您可以在 java 或
  • boost::thread 并创建它们的池!

    boost thread 类有一个默认构造函数 它给出 Not a thread 那么什么是 boost thread t1 适合什么 我可以给它一个稍后在代码中执行的函数吗 另一个问题 我正在尝试编写一个具有分阶段架构 SEDA 的小服务
  • Crossfilter过滤器不过滤(dc.js)

    我试图在交叉过滤器中使用过滤器 但是不行 这是 JSBin http jsbin com liwiru 8 edit 这是最相关的代码 var userDimension data dimension function d return d
  • Android 中用户不活动?

    我想查看我的 Android 应用程序中的用户不活动情况 如果用户在 1 分钟内没有执行任何活动 那么该应用程序应该离开屏幕 这意味着它应该显示一个对话框 要求输入密码 之前存储在共享首选项中 如果密码与活动应该再次开始 有人可以帮我解决这
  • 如何在响应和请求中添加新方法

    我想在node js的响应和请求中添加新方法 我怎样才能更有效地做到这一点 我不明白这是如何在express js中完成的 作为 JavaScript 有很多方法可以做到这一点 在我看来 对于express来说最合理的模式是将函数添加到早期
  • Flask-Login 不适用于同一域中的两个应用程序

    我一直在使用 Flask Login
  • 反思:如何获得泛型方法? [复制]

    这个问题在这里已经有答案了 可能的重复 如何使用反射调用泛型方法 https stackoverflow com questions 232535 how to use reflection to call generic method 通
  • Laravel - 服务提供者中的会话变量为空

    我正在尝试使用以下命令与所有视图共享会话值AppServiceProvider class In the boot 函数我说 view gt share key Session get key 但是 值是null 可能是什么问题 在控制器中
  • css 过渡:当用户设置了辅助功能选项“减少运动”时,触发过渡结束不会触发

    本周我一直在寻找我在网页中引入的 错误 我转向 CSS 过渡 具体来说 我用它来打开和关闭菜单 一位用户报告说 一旦打开菜单 他就无法关闭菜单 他有两次安装都出现了这个问题 而且我没有收到任何报告 我终于找到了问题的原因 操作系统的辅助功能