如何解决 Safari 的错误,该错误允许过滤器即使在隐藏溢出的情况下也能逃脱界限?

2024-02-24

我正在尝试使用 CSS 滤镜来模糊图像。在所有浏览器中,无论您将模糊设置为(预期)多少,模糊滤镜都会导致模糊超出图像的范围。但我想要定义边缘(并且图像有一个盒子阴影),所以我用另一个 div 包裹图像overflow set to hidden。这适用于所有浏览器。

但是,由于一些特定于应用程序的限制,我需要在加载和调整大小时使用 JavaScript 更新包装器的大小。这适用于除 Safari 之外的所有浏览器。更改包装器元素的大小会随机触发一个绘画错误,其中过滤器开始逃脱包装器的边界。情况并非总是如此,但在 MobileSafari 上和/或基于 DOM 的大小,这种可能性似乎会增加。

这是一个小提琴 https://jsfiddle.net/1edf4k9t/4/有一个小演示。使用 Safari,反复调整窗口大小就会触发该错误。有时它会重新绘制并自行修复,有时则不会。 (使用 Chrome 或 Firefox 就可以正常工作。)

(逃离包装器的模糊的屏幕截图 https://scratch.brockbatsell.com/safari-bug-fiddle.png.)

应该注意的是,与这个小提琴不同,在应用程序中,我仅在更改时设置新的宽度和高度,并且即使在调整大小事件期间未设置宽度和高度,Safari 仍然在模糊转义和不转义之间波动。

我尝试过的事情(没有成功):

  • 延迟包装器宽度的计算和设置,直到调整大小事件完成clearTimeout/setTimeout
  • 取消设置和重置overflow: hidden更改大小后使用 JavaScript 在包装器和图像上
  • Calling window.getComputedStyle(wrapper)(以及图像上和父元素上)
  • 将包装器提升为复合元素的各种恶作剧(例如translateZ(0)变换),这确实停止了some模糊溢出,但还不够。 (截屏 https://scratch.brockbatsell.com/safari-bug-translate.png.) 设置计时器来禁用变换只会将页面返回到完全模糊转义。
  • Setting white-space: nowrap在包装纸上
  • 通过设置宽度和高度document.styleSheets[x].cssRules[x].style.setProperty()而不是object.style.width/height
  • 将像素值四舍五入为 2 / 5 / 10 的倍数(是的,我很绝望)

我现在陷入困境,非常感谢您提供的任何帮助。谢谢你!


如果您添加一个,该错误似乎可以避免-webkit-mask-image https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-image到图像:

#image {
  -webkit-filter: blur(50px);
  filter: blur(50px);
  width: 100%;
  -webkit-mask-image: linear-gradient(to right, #fff, #fff);
}

https://jsfiddle.net/pqjh2471/ https://jsfiddle.net/pqjh2471/

-webkit-mask-image https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-image#Browser_compatibility不是特别好支持,但从 4.0 开始在 Safari 中支持。

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

如何解决 Safari 的错误,该错误允许过滤器即使在隐藏溢出的情况下也能逃脱界限? 的相关文章

  • 节点 sass 无效 CSS

    node sass 是否支持 use 由于我收到此错误 SassError t family fonts 之后的 CSS 无效 预期的表达式 例如 1px 粗体 为 roboto 这是 Nav scss 的代码 nav width 100
  • 如何将本地文本文件上传到文本区域(网页内)

    我是一名新手程序员 需要一些帮助来弄清楚如何将本地文本文件上传到我正在构建的网站内的文本区域 我非常精通 HTML CSS 对 Javascript JQuery 有相当的了解 而且我刚刚学习 PHP 您能提供的任何帮助我将不胜感激 我有一
  • 对使用“new”创建的数组上“map”的行为感到困惑[重复]

    这个问题在这里已经有答案了 我对结果感到困惑mapping 使用创建的数组new function returnsFourteen return 14 var a new Array 4 gt undefined x 4 in Chrome
  • 我应该如何实现将状态保存到 localStorage?

    CODE var React require react var Recipe require Recipe jsx var AddRecipe require AddRecipe jsx var EditRecipe require Ed
  • IE localStorage 事件失火

    在 Internet Explorer 9 和 10 中 localStorage 实现意外地触发事件 这里有很棒的线索 Chrome 的 localStorage 实现存在错误 https stackoverflow com questi
  • 从检查元素隐藏 ''

    我有这个 HTML 和 PHP 联系表
  • CSS 选择器嵌套

    是否可以在选择器中嵌套选择器 我有很多类似这样的样式 header h1 header img header form 我想压缩它们 使它们看起来像这样 header h1 img form 以提高可读性 这在普通的旧 CSS 中可能吗 不
  • 如何将两个 span 元素一个向左对齐,另一个向右对齐?

    我有两个 span 要素 span style margin right auto 2012 XYZ Corp All Rights Reserved span span style margin left auto Built with
  • 在循环中调用 setTimeout 未按预期工作

    下面的 JavaScript 应该 在我看来 以 0 5 秒的间隔播放一系列音符 但它会将它们全部作为一个同时的和弦来演奏 知道如何修复它吗 function playRecording if notes length gt 0 for v
  • 如何在 Javascript 中连接 C# ActiveX 事件处理程序

    我尝试使用几个代码片段将 ActiveX 对象与 Javascript 事件处理程序挂钩 我无法确定为什么事件处理程序没有被调用 带有项目的 Github 存储库 https github com JesseKPhillips Csharp
  • 此版本的 CLI 仅与 Angular 版本 5.0.0 或更高版本兼容错误

    我已经有 Angular 项目在 4 版本中运行 在安装新项目时 不幸的是我安装了 6 版本的 Angular cli 在以 4 版本运行的旧项目中运行 ngserve 命令时 这会引发错误 您的全局 Angular CLI 版本大于本地版
  • Javascript等待/异步执行顺序

    所以我试图把我的头脑集中在 Promise await async 上 我不明白为什么当 go 执行时 带有 finished 的警报会紧随 console log coffee 之后 当所有函数都使用等待 承诺时 为什么它只等待 getC
  • 从请求url获取hash参数

    我有这样的网址 http www coolsite com daily plan id 1 http www coolsite com daily plan id 1解析该字符串并读取哈希值 id 之后的值 的最简单方法是什么 谢谢 在客户
  • 如何使用 Javascript OAuth 库不暴露您的密钥?

    看着Twitter OAuth 库 https dev twitter com docs twitter libraries 我看到了这个注释 将 JavaScript 与 OAuth 结合使用时要小心 不要暴露你的钥匙 然后 看着jsOA
  • 悬停时的 CSS 过渡

    我有个问题 实际上 当我将鼠标悬停在对象上时 我尝试在 div 上进行转换 所以基本上我有一个div 当我将鼠标悬停在div上时 它应该在其顶部显示另一个div 但是它应该被转换 这样悬停效果会更平滑 如果我有这两个 div 怎么可能 di
  • 如果 jquery 验证激活,如何在单选按钮中放置红色边框[重复]

    这个问题在这里已经有答案了 我的问题是 如果 jquery 验证像示例图片中那样激活 我无法使单选按钮具有红色边框 任何人都可以帮我解决这个问题吗 http i38 photobucket com albums e149 eloginko
  • 如何将数据推送到嵌套对象

    如何将另一个元素推入variables来自以下对象的属性 var request name Name id 3 rules name Rule name tags tagId 1 variables variable var1 matchT
  • ‘state’未定义 no-undef

    我使用教程来学习 React 但我很快就陷入困境 在教程中 他们使用以下代码 import React Component from react class Counter extends Component state count 0 r
  • highchart堆积柱每个类别的总数据

    我想获取每个类别的总数据 这point stackTotal只给出活动数据的总数 从我粘贴的代码示例中 我想知道每种水果的总消耗量 因此 即使我单击右上角图例上的乔的名字 这使得堆叠图表上的所有乔信息都处于非活动状态 我仍然可以知道约翰 简
  • CSS:Chrome 和 Safari 似乎为宽度“添加”边框,而 IE、Firefox 和 Opera 则没有

    我正在努力实现我的网站的跨浏览器一致性 是关于这个页面的 http www 在这里插入点 geld 在这里插入破折号 surfen 在这里插入点 nl uitbetalingen html http www 5Binsert dot her

随机推荐

  • 哪些注册表项决定 Outlook 配置文件

    我需要编写 VBScript 代码来检查 Outlook 是否使用 MAPI 配置文件或 RPC over HTTP S 配置文件 哪个注册表项决定相同 这在 Outlook 2013 中发生了变化 Outlook 2013 开发人员的新增
  • 如何在 Blazor 中直接更改 css(不带变量)?

    我正在使用 Blazor 的服务器端 我想改变body的CSS 在 Jquery 中我可以轻松地编写这样的代码 body css overflow y hidden 但是 通过本教程 Blazor 更改验证默认 css 类名称 https
  • $http.jsonp() 是如何工作的

    这是一个例子 json file name Jon Skeets name Bill Joy 如果这个 json 文件的获取方式为 http jsonp pathToFile then 它返回 404 没有任何问题pathToFile我已经
  • Blade 中的嵌套部分

    我正在研究 Blade 如何实现 section 但它的工作方式与我习惯的 Twig 略有不同 看来你不能将 sections嵌套在一起 Example layout blade php 基本布局文件 favicons meta conte
  • 始终触发且仅触发一次的“transitionend”事件

    我需要一个特别的transitionend like 事件 在所有转换完成后触发一次 或者如果 CSS 中没有定义转换则立即触发 这是我到目前为止所想到的 function event special transitionsComplete
  • 基于媒体查询的可选 Javascript 执行

    我试图弄清楚如何根据当前设备 媒体查询选择性地运行一段 javascript 我正在使用 Twitter Bootstrap 并且基本上有两个版本的媒体查询 media min width 980px media max width 979
  • HashMap(key: String, value: ArrayList) 返回一个 Object 而不是 ArrayList?

    我将数据存储在 HashMap 中 键 String 值 ArrayList 我遇到问题的部分声明了一个新的 ArrayList current 在 HashMap 中搜索字符串 dictCode 如果找到 则将 current 设置为返回
  • SQL aspnet_profile

    知道如何使用 SQL 从基于 UserID 的 aspnet profile 表中获取用户名字和姓氏 因为我想在 Telerik Reporting 中使用作为用户参数 示例行 名字是 George 姓氏是 Test UserID 06b2
  • 如何使 IvParameterSpec 随机但仍解密

    对于 Java 中的加密 文章位于http cwe mitre org data definitions 329 html http cwe mitre org data definitions 329 html声明初始化向量每次都应该不同
  • 将对象数组作为 TempData[] 传递给查看

    我想从后操作返回两个值到视图中RedirectToAction TempData 似乎是理想的选择 因为数据仅用于在用户保存后显示成功消息 我想在成功消息中显示用户刚刚保存的图像的小缩略图以及所保存项目的标题 目前我正在将所有数据作为new
  • 刷新 Integration Services 中的目标架构元数据

    我一直致力于一个包含 150 多个表的大型 ETL 项目 在设计过程中 我必须对几个表的目标列名称和数据类型进行重大更改 我的问题是我无法让 SSIS 查看我更改的表的新架构 所以我想知道如何让 SSIS 刷新此架构 我觉得很荒谬 没有办法
  • 我可以拥有一个 ID 以数字开头的元素吗?

    我可以有一个元素吗id以数字开头或完全是数字 例如 像这样的东西 div div 我可以有一个以 id 为数字的 div 吗 是的你可以 但使用 CSS 选择器选择 设计它会很痛苦 id仅由数字组成的值在 HTML 中完全有效 http w
  • VueJS 有没有办法从父级触发组件方法?

    我一直在搜索信息 只找到了一种从子组件发出事件的方法 然后可以在父组件中监听这些事件 有没有办法从父组件调用子方法 是的 只需在 Children 数组中找到您的组件 或者通过 ref 属性获取它 然后调用方法 ref doc https
  • 使用 subplot2grid 时如何共享x

    我是一名 Matlab 用户 最近转换为 Python 大部分 Python 技能都是我自己掌握的 但在绘图方面我遇到了困难 需要一些帮助 这就是我正在尝试做的 我需要制作一个由 3 个具有以下属性的子图组成的图形 子图布局为 311 31
  • 如何在 WP7 中以编程方式设置选定的全景项目

    我在 WP7 应用程序中使用全景控件 其中一个 PanoramaItems 将您带到另一个页面 然后您可以通过 EmailComposeTask 发送电子邮件 如果您不选择发送电子邮件并按后退按钮 全景图将返回到您上次选择的项目 但是 如果
  • 尽管包含 ,但 Clang 仍拒绝 type_info 不完整

    我不明白为什么 Clang 拒绝以下代码 include
  • React 的“memo”在返回的函数中删除了泛型

    我想使用 React 的memo对于一个具有generic https www typescriptlang org docs handbook generics html争论 不幸的是 泛型参数默认为泛型 并且所有花哨的泛型推导逻辑都丢失
  • String.Contains(Array?..) - VB.NET 中的坏词过滤器

    有没有办法检查字符串是否包含数组中的一项 像这样 dim txt as String badword1 you you son of a badword2 dim Badwords as String badword1 badword2 b
  • 正则表达式替换小数

    我正在尝试构建一个正则表达式来替换任何不符合以下格式的字符 任意位数 然后可选 单个小数点 任意位数 i e 123 123 123 123 123 123 123 123 123a 123 123123 123a 123 123 123
  • 如何解决 Safari 的错误,该错误允许过滤器即使在隐藏溢出的情况下也能逃脱界限?

    我正在尝试使用 CSS 滤镜来模糊图像 在所有浏览器中 无论您将模糊设置为 预期 多少 模糊滤镜都会导致模糊超出图像的范围 但我想要定义边缘 并且图像有一个盒子阴影 所以我用另一个 div 包裹图像overflow set to hidde