我有一個瓶子的圖像,並嘗試用某種顏色填滿這個瓶子
我找到了填充座標,但瓶子內的背景未填滿
.item { width: 150px; height: 150px; } #tubeLiquid { background-color: #74ccf4; clip-path: polygon(45% 19%, 41% 22%, 41% 29%, 41% 36%, 41% 43%, 41% 50%, 41% 57%, 41% 63%, 41% 70%, 41% 77%, 41% 83%, 41% 90%, 43% 93%, 50% 92%, 56% 93%, 60% 88%, 59% 81%, 60% 75%, 60% 68%, 60% 61%, 59% 55%, 59% 48%, 59% 42%, 59% 35%, 59% 29%, 58% 23%, 54% 19%); } #bottleMask{ background-color: #FFFFFF; clip-path: polygon(45% 19%, 41% 22%, 41% 29%, 41% 36%, 41% 43%, 41% 50%, 41% 57%, 41% 63%, 41% 70%, 41% 77%, 41% 83%, 41% 90%, 43% 93%, 50% 92%, 56% 93%, 60% 88%, 59% 81%, 60% 75%, 60% 68%, 60% 61%, 59% 55%, 59% 48%, 59% 42%, 59% 35%, 59% 29%, 58% 23%, 54% 19%); }
<div class="item"> <svg viewBox="0 0 300 300"> <image width="300" clip-path="url(#bottleMask)" xlink:href="https://i.ibb.co/Mhfwtxp/image-removebg-preview-1.png" ></image> <defs> <mask id="bottleMask"></mask> </defs> <g id="maskedLiquid" mask="url(#bottleMask)"> <path id="tubeLiquid" fill="#74ccf4"></path> </g> </svg> </div>
您不需要額外的
。由於瓶子的形狀,您可以使用圓形
作為剪輯路徑:首先繪製剪輯路徑和填充比例/進度條形狀 - 不剪輯任何內容 - 以找到正確的座標和尺寸。
然後您可以套用剪輯路徑。
我為「tubeLiquid」元素使用了
元素,因為它允許我們將pathLength
屬性設為 100。我們可以透過更新
lines-dasharray
屬性輕鬆更改目前填滿值:您會發現很多關於使用此方法實現各種動態儀表/進度條或動畫餅圖的範例,例如「在JavaScript 中設定svg 進度條百分比」
我發現的最接近的解決方案是我沒有裝滿整個瓶子,但你只需要更改多邊形中的一些座標,我不了解形狀和多邊形。