• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

javascript - 在移动 Safari 中隐藏/显示内联 SVG 时出现问题

[复制链接]
菜鸟教程小白 发表于 2022-12-13 03:59:44 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试为我们的图标使用内联 SVG。具体来说我是:

  • 使用 grunt 将所有 svg 组合成一个 svg sprite
  • 使用 标签内联引用它们 ala this article

大部分情况下都运行良好。但是,当我尝试使用 JS 隐藏/显示 iOS 浏览器时遇到问题 - http://codepen.io/meanspa/pen/vEGERZ

  $('.expand-link').click(function(){
  $('.expand-link').toggleClass('clicked');
});

因为对于这个 codepen,SVG 定义在 DOM 中,所以它可以正常工作,但是如果你将它们移动到外部文件并尝试在移动 Safari 中使用它,原来隐藏的 SVG (.icon-contract)当你点击它时不会显示。事实上,我发现让这项工作的唯一方法是最初将 .icon-contract 设置为 display:block ,然后在 JS 中设置延迟,以便在几百之后隐藏它毫秒。

总结一下,它看起来像在移动 Safari 中:

  • 如果您使用 标签来引用外部文件中的 svg
  • 如果其中一些在页面加载时是 display:none
  • 那他们事后就不能用JS显示了

还有其他人遇到过这个问题吗?

谢谢。

更新:正如 Salmonface 指出的那样,仅在 iOS 7 及更早版本上才注意到这一点,看起来它已在较新的版本中得到修复。



Best Answer-推荐答案


Chris Coyier 发布 this workaround :

使用“宽度:0px;高度:0px;”而不是“显示:无”。

到目前为止对我来说工作得很好。

关于javascript - 在移动 Safari 中隐藏/显示内联 SVG 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27490104/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap