我有a jigsaw demo in SVG的开头,可以在Opera,Chrome和Safari中使用,但不适用于Firefox:背景rect
显示,但这些内容完全缺失。
这些部分由path
元素组成,其fill
属性引用pattern
,后者又包含已翻译图像的副本,以便图像的正确部分位于路径下的剪辑。这些部分由JavaScript代码生成。
我偶尔会遇到图像无法显示的故障模式 - 但在这种情况下,路径的笔划应该是可见的。在Firefox上我甚至看不到中风。
如果有人能告诉我是否
,我会感兴趣我误读了SVG规范,我正在做的事情根本不适用 - Opera,Chrome和Safari只是善良;或
Firefox有一个众所周知的包含图案的图片错误,有一个简单的解决方法。
这是我第三次尝试将图像用作不规则形状拼图的背景:过滤器不起作用,因为它们似乎没有办法翻译它们所引用的图像,只是放置一个使用clipPath
的图像不起作用,因为在Safari中拖动图像会尝试将图像文件拖到桌面上,这会干扰拼图周围的拖动碎片!
答案 0 :(得分:0)
首先快速观察:如您所知,SVG是XML,因此您正在结束脚本标记是错误的。
删除</script>
特别是因为你已经自己关闭了该元素。
答案 1 :(得分:0)
祝你节日快乐!我已经使它在Firefox上工作,对JavaScript进行了微小的改动!
图像,符号和图案都是红色的鲱鱼。问题是路径数据。旧版本看起来像这样:
M0,0 h250 v120,q0,20 -20,20,t-20,-20,-20,-20,-20,100,20,100,20,-20,20,-20,20,20,v120 h-250 v-400 z
新版本看起来像这样
M0,0 h250 v120 q0,20 -20,20 t-20,-20 -20,-20 -20,100 20,100 20,-20 20,-20 20,20 v120 h-250 v-400 z
JavaScript代码中的错误是使用逗号分隔某些命令而不是空格。我认为在这种情况下Firefox是正确的,其他浏览器过于仁慈,但要确保需要更仔细地重新阅读规范而不是我现在的心情。 : - )