我通过使用几何公式相应地为活动和非活动计时器状态放置 60 个 div 来制作一个简单的圆形计时器:
x = x0 + r * Cos(theta * PI / 180);
y = y0 + r * Sin(theta * PI / 180);
但是浏览器似乎在元素之间放置了错误的空间,手动更改公式值并没有帮助,所以我决定接受这种行为。
直到我在 IE 中检查它,它碰巧以不同的方式解析这些坐标,实际上,它是唯一正确放置元素的浏览器,形成一个完美的圆形,因此将这些元素扩展到父尺寸之外。
我的第一个想法是浏览器解析器值舍入的差异。也就是说,IE 似乎会以小数点后两位的精度四舍五入,而其他的则要精确得多。不知道他们是如何思考这些价值观的,所以我不能确定这些差异。
我实际上需要我的计时器看起来像 IE 绘制它。所以,我会很感激你对这个话题的想法。
元素放置如下:
or(var z = 0; z < items; z++) {
segment_inactive = $("<div class='segment_inactive'></div>"),
segment_active = $("<div class='segment_active'></div>");
var x = 80 + 80 * Math.cos(2 * Math.PI * z / items);
var y = 80 + 80 * Math.sin(2 * Math.PI * z / items);
d += 6;
$("#timer").append(segment_inactive, segment_active);
segment_inactive.css({
left:x +"px",
top:+ y +"px",
transform: "rotate("+d+"deg)",
display: "block"
});
segment_active.css({
left:x +"px",
top:+ y +"px",
transform: "rotate("+d+"deg)",
display: "none"
});
}
它只是显示/隐藏切换。
您可以在下面的 jsfiddle 链接上查看此计时器。在不同的浏览器和 IE 中查看它。