39,084
社区成员
发帖
与我相关
我的任务
分享
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
window.onload= function() {
var can = document.getElementById("can");
var con = can.getContext("2d");
alert(document.body.clientWidth);
// can.style.left = ((document.body.clientWidth - can.width) / 2) + "px";
con.translate(75, 75);
for (var i = 0; i < 6; i++) {
con.save();
con.fillStyle = "rgb(" + (51 * i) + "," + (255 - 51 * i) + ",255)";
for (var j = 0; j < i * 6; j++) {
con.rotate(Math.PI * 2 / (i * 6));
con.beginPath();
con.arc(0, i * 12.5, 5, 0, Math.PI * 2, true);
con.fill();
}
con.restore();
}
var canvase = document.getElementById("canvas");
var context = canvase.getContext("2d");
alert(document.body.clientWidth);
// canvase.style.left = ((document.body.clientWidth - can.width) / 2) + "px";
canvase.style.top = "350px";
context.fillRect(0, 0, 300, 300);
for (var i = 0; i < 3; i++) {
for (var j = 0; j < 3; j++) {
context.save();
context.strokeStyle = "#9CFF00";
context.translate(50 + j * 100, 50 + i * 100);
drawSpirograph(context, 20 * (j + 2) / (j + 1), -8 * (i + 3) / (i + 1), 10);
context.restore();
}
}
};
function drawSpirograph(ctx, R, r, o) {
var x1 = R - o;
var y1 = 0;
var i = 1;
ctx.beginPath();
ctx.moveTo(x1, y1);
do {
if (i > 20000) break;
var x2 = (R + r) * Math.cos(i * Math.PI / 72) - (r + o) * Math.cos(((R + r) / r) * (i * Math.PI / 72));
var y2 = (R + r) * Math.sin(i * Math.PI / 72) - (r + o) * Math.sin(((R + r) / r) * (i * Math.PI / 72));
ctx.lineTo(x2, y2);
x1 = x2;
y1 = y2;
i++;
} while (x2 != R - o && y2 != 0);
ctx.stroke();
}
</script>
</head>
<body>
<canvas id="can" width="500px" height="300px" style="position: absolute;border: 2px solid black;"></canvas>
<canvas id="canvas" width="500px" height="400px" style="position: absolute;border: 2px solid black;"></canvas>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
window.onload= function() {
var can = document.getElementById("can");
//第一次载入 这个打印的值 为0 再次F5刷新值正常 关闭页面 双击打开 10次有9此 打印值为0 360急速模版有此问题
alert(document.body.clientWidth);
can.style.left = ((document.body.clientWidth - can.width) / 2) + "px";
var canvase = document.getElementById("canvas");
alert(document.body.clientWidth);
canvase.style.left = ((document.body.clientWidth - can.width) / 2) + "px";
canvase.style.top = "350px";
};
</script>
</head>
<body>
<canvas id="can" width="500px" height="300px" style="position: absolute;border: 2px solid black;"></canvas>
<canvas id="canvas" width="500px" height="400px" style="position: absolute;border: 2px solid black;"></canvas>
</body>
</html>
这个页面 已经 onload了 看js代码 本来是想设置 canvas居中 发现一个bug
不知道这种是什么问题