????????<canvas?id="canvas"?style="border:1px?solid?#aaa;display?block;margin:50px?auto;"></canvas>
????????
????????<script>
????????var?balls?=?[];
????????var??canvas?=?document.getElementById("canvas");
????????var?context?=?canvas.getContext("2d");
????????
????????
????????????window.onload?=?function(){
????????????????
????????????????canvas.width?=?800;
????????????????canvas.height?=?800;
????????????????
????????????????for(?var?i?=?0?;?i?<=?10?;?i++)
????????????????{
????????????????????var?aball?=?{x:?Math.random()?*?canvas.width,
????????????????????????y:?Math.random()?*?canvas.height,
????????????????????????r:?Math.random()?*?50?+?20};
????????????????????????
????????????????????
????????????????????balls[i]?=?aball;
????????????????????
????????????????}
????????????????draw();
????????????????canvas.addEventListener(?"mouseup"?,?detect?);
????????????}
????????????
????????????
????????????function?draw(){
????????????????
????????????????for(?var?i?=?0?;?i?<=balls.length?;?i++?){
????????????????????context.beginPath();
????????????????????context.arc(?balls[i].x?,?balls[i].y?,?balls[i].r?,?0?,?2*Math.PI);
????????????????????
????????????????????context.fillStyle?=?"blueviolet";
????????????????????context.fill();
????????????????????
????????????????}
????????????}
????????????
????????????
????????????function?detect(?event?){
????????????????var?x?=?event.clientX?-?canvas.getBoundingClientRect().left;
????????????????var?y?=?event.clientY?-?canvas.getboundingClientRect().top;
????????????????
????????????????for(?var?i?=?0?;?i?<=?balls.length?;?i++){
????????????????????
????????????????????context.BeginPath();
????????????????????context.arc(balls[i].x,balls[i].y?,?balls[i].r?,0?,?2*Math.PI);
????????????????????if(?context.isPointInPath(x,y)){
????????????????????????context.fillStyle?=?"darkgreen";
????????????????????????context.fill();
????????????????????
????????????????????}`
????????????????}
????????????}?
????????</script>
2016-04-03
四個錯誤:
第44行,getBoundingClientRect()拼寫錯誤,“bound”的b是大寫的
detect和draw函數(shù)的for循環(huán)條件多了個“=”
第48行beginPath拼寫錯誤
第54行的括號后面有個多余的符號。
這些錯誤在瀏覽器上調(diào)試調(diào)試就可以發(fā)現(xiàn)問題的。
2016-04-05
真的很感謝,不懂你的瀏覽器調(diào)試是啥,只能打開網(wǎng)頁,然后查看元素,出現(xiàn)代碼,但咋調(diào)試