css - 模拟与 SVG 文本填充属性的背景附件修复相同的效果

标签 css svg background-attachment

我有一个带有 <text fill='url(#img1)'>Hello</text> 的 SVG但是,当滚动时,我想通过执行相同的操作来获得背景的视差效果,我会在 div 上使用 background-attachment:fixed 设置其背景。 。

有什么方法可以使用 SVG 实现开箱即用的效果吗? 我知道Raphaël.js通过操纵patternTransform来实现这一点pattern内的矩阵元素,但是我想在不需要额外脚本的情况下实现这一点。

最佳答案

不抱歉。你不能用纯 SVG 做你想做的事。我能想到的唯一解决方法是混合 SVG+HTML 解决方案,其中您的文本实际上是纯色形状中的一个洞(例如 <rect> ),通过它您可以看到 <svg> 的背景。 s 父元素。并将背景放在父元素上。

即。像这样:

<div style="background:url(foo); background-attachment:fixed">
   <svg>
      <defs>
         <mask id ="mytext">
            <text>My text</text>
         </mask>
      </defs>
      <rect mask="url(#mytext)"/>
   </svg>
</div>

为了清楚起见,已经对此进行了简化,但希望您能明白。

关于css - 模拟与 SVG 文本填充属性的背景附件修复相同的效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18209033/

相关文章:

javascript - CSS 'background-attachment:fixed' 非常滞后

css - Chrome + 位置 :fixed + background-attachement:fixed 的奇怪行为

javascript - crossbrowser - 获取 css 颜色

html - 如何在 html5 中显示 SVG 圆圈内的图像?

css - 背景附件:滚动和背景大小:覆盖不起作用

html - 如何为头像图像创建星形?

css - 使用 SVG 平铺时只显示一次组

css - 将 Bootstrap 绑定(bind)到单个 div 容器

javascript - marquee 标签在 google chrome 的悬停效果上不起作用

html - Flexbox - 如何防止长文本向右移动 div?