web-dev-qa-db-ja.com

SVGパス要素にドロップシャドウを追加するにはどうすればよいですか?

SVGパスにドロップシャドウを適用しようとしています。 filterオプションをグーグルで検索しました。これをパスに適用すると、-webkit-filter: drop-shadow( -5px -5px 10px #000 );が適用されていないようです。

これが問題を示す私のSVGパスのフィドルです

9
Louis93

JSFiddle内で、CSSを削除し、フィルター定義を追加しました。それはうまくいくようです:

<svg width="100%" height="300px">
<defs>
       <filter id="filter1" x="0" y="0">
           <feOffset result="offOut" in="SourceAlpha" dx="-5" dy="-5" />
           <feGaussianBlur result="blurOut" in="offOut" stdDeviation="3" />
           <feBlend in="SourceGraphic" in2="blurOut" mode="normal" />
    </filter>
</defs>
<path stroke-linejoin="round" stroke-linecap="round" stroke="red" stroke-opacity="1" stroke-width="5" fill="none" class="leaflet-clickable" d="M1063 458L1055 428L1034 433L1030 421L1017 423L911 452L895 455L885 441L859 424L809 410L788 394L774 377L744 309L730 313L727 304L669 319L599 341L596 331L491 364L488 357L498 343L490 343L450 352L417 256L371 270L366 253L355 256L351 242L217 282L194 210L191 196L166 113L45 147L44 140L13 150" filter="url(#filter1)"></path>
</svg>

たぶん、dx、dy、およびstdDeviationの値を少し調整するだけで、思いどおりの結果が得られます。

15
cobaltduck