javascript - 在隐藏的 svg 路径上应用阴影

标签 javascript css d3.js svg

这里是 pen

当使用以下技术之一隐藏矩形时,我想在矩形上应用投影效果:

opacity:0 // or  
fill:rgba(1,1,1,0)  // or  
fill-opacity:0  // or  
display:none 

当我尝试在这些元素上应用过滤器时,阴影根本没有出现......

是否可以在隐藏的 Svg 路径上应用投影?如何?

最佳答案

最简单的方法是使用 mask 。

在下面的演示中,我们为圆​​圈添加了阴影。然后我们构建 mask ,使其隐藏圆圈本身,但保留圆圈外的区域(即阴影)。露出它后面的红色矩形。

<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <filter id="shadow">
      <feDropShadow dx="4" dy="8" stdDeviation="4"/>
    </filter>
    <mask id="invisible">
      <rect width="100%" height="100%" fill="white"/>
      <circle cx="50%" cy="50%" r="80" fill="black"/>
    </mask>
  </defs>

  <rect x="40" y="60" width="150" height="80" fill="red"/>

  <circle cx="50%" cy="50%" r="80"
      style="fill:blue; filter:url(#shadow); mask: url(#invisible);"/>
</svg>

关于javascript - 在隐藏的 svg 路径上应用阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43830710/

相关文章:

javascript - 使用 javascript 选项卡显示排行榜

Javascript for 循环 [循环不停止]

java - Selenium WebDriver 找不到 WebElements

html - 仅使用 css 相对于其中心的元素动画

javascript - D3 根据节点的文本值进行选择

jquery - 如何将 DOM 附加到 Angular 2 组件并仍然获得封装样式

javascript - 在 Angular2 中,生成的文件的 SHA256 哈希与其他站点的 SHA256 不匹配

javascript - 通过 :even and :odd 向 querySelectorAll 提供索引的替代方法

jquery - MMenu 插件不会在移动设备中向右打开

javascript - 为 D3 树布局嵌套 CSV