用鼠标单击对象,使画布对象消失
Make a canvas object disappear with a mouse click on object
我的任务是随机绘制3-6个大小随机、颜色随机的矩形,然后每两秒钟添加一个,然后为它们设置动画,使它们移动。完成了。剩下的就是用鼠标点击使矩形消失。
我的Html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Assignment 5</title>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/assignment5.css">
</head>
<body>
<header>
<h1>Assignment 5</h>
</header>
<!--the height and width attributes size the canvas-->
<canvas id="canvas" width="1200" height="600"></canvas>
<script src="js/assignment5.js" charset="utf-8"></script>
<footer>
Copyright © no one in particular...
</footer>
我的Javascript
randomBoxes();
function getRandomColor() { //Generates a random hex number for the color
var color = '#';
for (var i = 0; i < 6; i++) {
color += (Math.random() * 16 | 0).toString(16);
}
return color;
}
function boundryNum(theMin, theMax) {
var theRange = (theMax - theMin) + 1;
var randomNum = Math.floor((Math.random() * theRange) + theMin);
return randomNum;
}
function drawbox() {
var width = Math.floor(Math.random() * 200) +20; //Random witdth 20-200
var height = Math.floor(Math.random() * 200) + 20; //Random height 20-200
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
context.fillRect(boundryNum(25,800),boundryNum(25,400),width,height); //ctx.fillRect(x, y, width, height), where x and y are the coordinates of the starting place on the canvas.
context.fillStyle = getRandomColor();
}
function randomBoxes(){
var number = Math.floor(Math.random() * 5) + 1; //Three to six times....
while(number >= 0){
drawbox();
number--;
}
setInterval(drawbox, 2000)
}
我的Css
html{
font-size: 14px;
}
header{
background-color: black;
height: 3rem;
text-align: center;
}
h1{
color: white;
}
h2{
color:black;
}
body{
background-color: black;
padding-left: 30px;
padding-right: 30px;
}
#canvas {
position: absolute;
top: 4.5rem; //Starting point top-left.
left: 1.5rem;
width: 1000px;
height: 500px;
background: black;
animation: move 3s ease infinite;
}
@keyframes move {
50% {
transform: translate(800px, 200px); //(horizotal travel, verticle travel)
}
}
footer{
background-color: lime;
text-align: center;
color: black;
margin-top: 800px;
}
我已经对此做了两天的研究,我得出的结论是,我应该在绘制时创建一个数组或每个矩形,并使用画布鼠标坐标遍历数组,与矩形坐标进行比较,然后使用画布图形的clearRectangle属性来清除矩形。我真的被这项任务的最后一步卡住了。如果你知道它是如何做到的,我准备学习如何做到这一点。
作为我在这门课上的最后一个项目,我想把它变成一个游戏,通过加快矩形的创建速度,并给其中一些渐变和阴影,来提高难度。谢谢
我的解决方案是,为每个对象创建一个数组,并为它们提供一个ID。然后删除,以便在单击它们时将它们从数组中删除。"矩形1.onclick".
您可能还希望每次都创建一个长方体对象,并以这种方式进行操作。而不仅仅是在画布上打印一个形状。
相关文章:
- 用鼠标单击对象,使画布对象消失
- 当对象从服务器发送到客户端时,JS原型方法消失了
- 为什么这个对象会消失
- Javascript:正在消失的对象属性
- 对象在Ember.js中保存时从视图中消失
- 如何使JavaScript对象在单击页面其余部分时消失
- 对象中的 JS 函数消失
- javascript生成的对象在出现后立即消失
- 如何单击未完全覆盖背景的对象,并在悬停时消失,同时通过窗口对象退出元素
- 在WebGL中渲染多网格对象时,背景(画布)颜色将消失
- 从一个对象悬停到另一个对象,而第二个DOM对象不会立即消失
- 对象上的流体和动态动画出现和消失(HTML/JS/CSS)
- 三.js中消失的线对象
- Javascript: in ff in history对象自定义函数消失
- 如何点击一个没有完全覆盖背景并在悬停时消失的对象
- 如何单击消失的对象
- 奇怪的javascript错误-对象消失了
- 使用jquery前置对象并消失
- 当我点击页面上的任何位置时,如何使对象消失
- 为什么在引用对象消失后变量仍然包含数据