我使用clipPath
將不同的「蒙版」效果應用於圖像。SVG:將填充顏色應用於懸停的「蒙版」圖像
如何在懸停時用顏色填充剪切後的圖像?我試過在CSS中使用:hover
,但這似乎不起作用,除非我針對不正確的元素。
我在這個項目中使用jQuery,所以如果需要JS解決方案,我可以依靠jQuery。
下面是我的工作的HTML:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 100 100">
<defs>
<clipPath id="ellipse">
<ellipse cx="50" cy="35.5" rx="49.5" ry="35" />
</clipPath>
<clipPath id="hexagon">
<polygon points="25, 0 75, 0 100, 43.30127018922193 75, 86.60254037844386 25, 86.60254037844386 0, 43.30127018922193"/>
</clipPath>
<clipPath id="rectangle">
<rect x="0" y="0" width="100" height="70"></rect>
</clipPath>
</defs>
<g>
<image preserveAspectRatio="none" x="0" y="0" width="100%" height="100%" xlink:href="http://upload.wikimedia.org/wikipedia/commons/thumb/b/bf/Bucephala-albeola-010.jpg/800px-Bucephala-albeola-010.jpg" id="clippy" clip-path="url(#hexagon)">
</g>
</svg>
不錯的工作Thomas W.我沒有意識到你可以純粹用CSS做到這一點。真棒! – Dave
Thomas W,太棒了。謝謝。計算「」值初看起來有點複雜。你知道有哪些工具可以幫助你嗎?也許是允許粘貼十六進制值或rgb值的東西,並且會生成矩陣? –
ctrlaltdel
@ctrlaltdel:爲了自動生成'feColorMatrix'的值,實際上需要五個顏色對,每個顏色對包含一個「原始」顏色和它被矩陣映射到的顏色。 (至少這是我相當疲倦的說服力,也許我應該在更清醒的時候再考慮一下。)我編輯了這個問題,以包含關於矩陣的更多信息。 –