JSFiddle - React, Tailwind, and code Playground
HTML
<div id="circle"></div>
CSS
*, ::before, ::after {
position: relative;
-webkit-box-sizing: border-box;
box-sizing: border-box;
-webkit-touch-callout: none;
}
#circle {
position:relative;
width: 22px;
height: 22px;
background: #582B00;
}
span {
position:absolute;
display:block;
width:4px;
height:4px;
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAxMi4xMC4xOKXW34YAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzVxteM2AAAAdklEQVQokZWSQRGEMBAEGwxcJCABCUi6c4AUJEQKOEBCUND3SaqAByT97tmpmlrIqLOavJLURQ2cUaPP7Op4vlzDqoZOTcCHOn6daqUMsLUG6FvkEjga/KMHYkMgooa88xtJHQBQx7zzkzxdunLT9xYsrzEU7w/qU/QLrEfN7gAAAABJRU5ErkJggg==');
-webkit-background-size: 4px 4px;
background-size: 4px 4px;
}
JavaScript
circle = $('circle');
border = circle.getStyle('border-width').toInt();
width = circle.getStyle('width').toInt() - (border*2);
height = circle.getStyle('height').toInt() - (border*2);
dot = 4;
c = (width-dot)/2; //center
r = (height-dot)/2; // 半径
a = 360/8; // 角度(度)
X = [];
Y = [];
for (var i = 0; i < 8; i++ ) {
x = r * Math.cos((-a * i) / 180 * Math.PI) * -1; // X座標
y = r * Math.sin((-a * i) / 180 * Math.PI) * -1; // Y座標
x = Math.floor(c +x);
y = Math.floor(c +y);
X.push(x + 'px');
Y.push(y + 'px');
new Element('span', {styles:{'top':x, 'left':y}}).inject(circle);
}
console.log("x",X.join(','));
console.log("y",Y.join(','));