如何为元素设置值数组(度)?
每个元素都需要从数组中获取值,并需要相应地进行排列。对我来说,这不起作用。任何人都可以告诉我这样做的正确方法吗?
示例代码:
var items = 4;
var values = [0,15,30,45] //first should be 0, next 15deg like so..
for(var i = 0; i < items; i++) {
var num = i;
var x = 75 - 12 + 87 * Math.cos(values[i]);
var y = 75 - 12 + 87 * Math.sin(values[i]);
$("#center").append("<div class='point' style='left:"+ x +"px;top:"+ y +"px'></div>");
}
在某些时候,如果我需要设置360个元素,那么应根据数组值进行排列。
答案 0 :(得分:2)
传递给Math.sin
和Math.cos
的角度必须是弧度,而不是度数。
要转换为弧度,只需将角度乘以Math.PI / 180
。
var values = [0,15,30,45];
for(var i = 0; i < values.length; i++) {
$(document.createElement('div')).css({
left: 75 - 12 + 87 * Math.cos(values[i] * Math.PI / 180),
top: 75 - 12 + 87 * Math.sin(values[i] * Math.PI / 180)
}).addClass('point').appendTo("#center");
}
.point {
position: absolute;
border: 5px solid;
border-radius: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="center"></div>