0
我有一個svg多邊形,我想複製它們n次動態。所以我面臨的問題是當我複製它們時,我應該如何複製這些點。 而不是硬編碼數組中的點,我希望它們動態生成。請幫我隨機放置svg多邊形
$(document).ready(function() {
var polyarray= {
"polyobj": [{
"id": 0,
"name": 'Poly',
"points":'20,10 30,30 30,20',
"color":'#ed078d'
},{
"id": 1,
"name": 'Poly1',
"points":'20,50 10,50 30,60',
"color": '#d71f39'
},{
"id": 2,
"name": 'Poly2',
"points":'60,10 70,30 80,20',
"color":'#ed4a39'
},{
"id": 3,
"name": 'Poly3',
"points":'40,80 60,90,60,100',
"color": '#f78d37'
},{
"id": 4,
"name": 'Poly4',
"points":'50,50 50,60 80,50',
"color": '#c52031'
}]
}
for (i = 0; i < polyarray.polyobj.length; i++) {
var color = polyarray.polyobj[i].color;
var nowCloned = $("#main-0").clone();
nowCloned[0].id = "main-"+(i);
var nc = "clip"+(i+1);
var fnow = nowCloned.find('polygon')
fnow.attr("id",nc);
fnow.css({"fill":color});
fnow.attr("points",polyarray.polyobj[i].points);
nowCloned.appendTo("#Layer_1");
};
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<svg id="Layer_1" class="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 324.61 150.83">
<g id="main-0" style="position:absolute; top:-899px;">
<polygon points="" id="poly" />
</g>
</svg>
請包括jQuery的代碼片段 – Arnauld
如果它只是用於顯示和形狀將是相同的,只是位置是隨機的,你可以複製同樣的一個隨機變換。 – Ian