Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 代码在JSFIDLE中工作,但不在浏览器中工作_Javascript_Html_Canvas - Fatal编程技术网

Javascript 代码在JSFIDLE中工作,但不在浏览器中工作

Javascript 代码在JSFIDLE中工作,但不在浏览器中工作,javascript,html,canvas,Javascript,Html,Canvas,这是我的HTML5代码。每当我尝试运行这个文件时,我都会得到一个黑色的画布,里面没有矩形。但它在jsfiddle中同样完美地工作 <!DOCTYPE html> <html> <head> <title>TEST</title> <style> body { background-color:ivory; } #canvas { border:10px solid red; background-color:black; }

这是我的HTML5代码。每当我尝试运行这个文件时,我都会得到一个黑色的画布,里面没有矩形。但它在jsfiddle中同样完美地工作

<!DOCTYPE html>
<html>
<head>
<title>TEST</title>
<style>
body {
background-color:ivory;
}
#canvas {
border:10px solid red;
background-color:black;
}
 </style>
</head>
<body>
<canvas id="canvas" width="400" height="300">
</canvas>
<script type="text/javascript">
var c = document.getElementById("canvas");
var ctx = c.getContext("2d");
var $canvas = $("#canvas");
var canvasOffset = $canvas.offset();
var offsetX = canvasOffset.left;
var offsetY = canvasOffset.top;
var scrollX = $canvas.scrollLeft();
var scrollY = $canvas.scrollTop();

var isDown = false;
var startX;
var startY;

var toggle=0;
    var x=150;
    var y=100;
    var w=100;
    var h=100;
    var wasInside=false;

ctx.fillStyle = "#04B45F";
ctx.fillRect(x, y, w, h);

function changeColor() {
if (toggle == 0) {
    ctx.fillStyle = "#FFFFFF";
    toggle = 1;
} else {
    ctx.fillStyle = "#04B45F";
    toggle = 0;
}
ctx.fillRect(x, y, w, h);
}
function handleMouseMove(e) {

e.preventDefault();
var mx = parseInt(e.clientX - offsetX);
var my = parseInt(e.clientY - offsetY);

var isInsideNow = (mx > x && mx < x + w && my > y && my <= y + h);

if (isInsideNow && !wasInside) {
    changeColor();
    wasInside = true;
} else if (!isInsideNow && wasInside) {
    wasInside = false;
}

}

$("#canvas").mousemove(function (e) {
handleMouseMove(e);
});

</script>
</body>
</html>

测验
身体{
背景颜色:象牙色;
}
#帆布{
边框:10px纯红;
背景色:黑色;
}
var c=document.getElementById(“画布”);
var ctx=c.getContext(“2d”);
var$canvas=$(“#canvas”);
var canvasOffset=$canvas.offset();
var offsetX=canvasOffset.left;
var offsetY=canvasOffset.top;
var scrollX=$canvas.scrollLeft();
var scrollY=$canvas.scrollTop();
var isDown=假;
var-startX;
var startY;
var=0;
var x=150;
变量y=100;
var w=100;
var h=100;
var wasinder=false;
ctx.fillStyle=“#04B45F”;
ctx.fillRect(x,y,w,h);
函数changeColor(){
如果(切换==0){
ctx.fillStyle=“#FFFFFF”;
切换=1;
}否则{
ctx.fillStyle=“#04B45F”;
切换=0;
}
ctx.fillRect(x,y,w,h);
}
功能手柄移动(e){
e、 预防默认值();
var mx=parseInt(e.clientX-offsetX);
var my=parseInt(e.clientY-offsetY);

var isInsideNow=(mx>x&&mxy&&my您需要将jQuery代码包装在DOM就绪处理程序
$(function(){…});

这个任务是由
jsFiddle
在包含jQuery后自动完成的

$(function() {
    $("#canvas").mousemove(function (e) {
        handleMouseMove(e);
    });
});

实际上,您的代码中缺少jQuery库,因此需要将其包括在内。因此您可以执行以下操作:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function() {
    $("#canvas").mousemove(function (e) {
        handleMouseMove(e);
    });
});
</script>

$(函数(){
$(“#画布”).mousemove(函数(e){
手推车(e);
});
});

在关闭
标记之前,将上述代码放在页面底部。

您需要将jQuery代码包装在DOM就绪处理程序
$(function(){…});

这个任务是由
jsFiddle
在包含jQuery后自动完成的

$(function() {
    $("#canvas").mousemove(function (e) {
        handleMouseMove(e);
    });
});

实际上,您的代码中缺少jQuery库,因此需要将其包括在内。因此您可以执行以下操作:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function() {
    $("#canvas").mousemove(function (e) {
        handleMouseMove(e);
    });
});
</script>

$(函数(){
$(“#画布”).mousemove(函数(e){
手推车(e);
});
});

在关闭标签之前,请将上述代码放在页面底部。

您需要在远程CDN或本地CDN的head标签中包含js脚本

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>

您需要在远程CDN或本地CDN的头标签中包含js脚本

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>

试试这个

<!DOCTYPE html>
<html>
<head>
<title>TEST</title>
<style>
body {
background-color:ivory;
}
#canvas {
border:10px solid red;
background-color:black;
}
 </style>
</head>
<body>
<canvas id="canvas" width="400" height="300">
</canvas>
<script src="http://code.jquery.com/jquery-latest.min.js"
        type="text/javascript"></script>

<script type="text/javascript">
var c = document.getElementById("canvas");
var ctx = c.getContext("2d");
var $canvas = $("#canvas");
var canvasOffset = $canvas.offset();
var offsetX = canvasOffset.left;
var offsetY = canvasOffset.top;
var scrollX = $canvas.scrollLeft();
var scrollY = $canvas.scrollTop();

var isDown = false;
var startX;
var startY;

var toggle=0;
    var x=150;
    var y=100;
    var w=100;
    var h=100;
    var wasInside=false;

ctx.fillStyle = "#04B45F";
ctx.fillRect(x, y, w, h);

function changeColor() {
if (toggle == 0) {
    ctx.fillStyle = "#FFFFFF";
    toggle = 1;
} else {
    ctx.fillStyle = "#04B45F";
    toggle = 0;
}
ctx.fillRect(x, y, w, h);
}
function handleMouseMove(e) {

e.preventDefault();
var mx = parseInt(e.clientX - offsetX);
var my = parseInt(e.clientY - offsetY);

var isInsideNow = (mx > x && mx < x + w && my > y && my <= y + h);

if (isInsideNow && !wasInside) {
    changeColor();
    wasInside = true;
} else if (!isInsideNow && wasInside) {
    wasInside = false;
}

}

$("#canvas").mousemove(function (e) {
handleMouseMove(e);
});

</script>
</body>
</html>

测验
身体{
背景颜色:象牙色;
}
#帆布{
边框:10px纯红;
背景色:黑色;
}
var c=document.getElementById(“画布”);
var ctx=c.getContext(“2d”);
var$canvas=$(“#canvas”);
var canvasOffset=$canvas.offset();
var offsetX=canvasOffset.left;
var offsetY=canvasOffset.top;
var scrollX=$canvas.scrollLeft();
var scrollY=$canvas.scrollTop();
var isDown=假;
var-startX;
var startY;
var=0;
var x=150;
变量y=100;
var w=100;
var h=100;
var wasinder=false;
ctx.fillStyle=“#04B45F”;
ctx.fillRect(x,y,w,h);
函数changeColor(){
如果(切换==0){
ctx.fillStyle=“#FFFFFF”;
切换=1;
}否则{
ctx.fillStyle=“#04B45F”;
切换=0;
}
ctx.fillRect(x,y,w,h);
}
功能手柄移动(e){
e、 预防默认值();
var mx=parseInt(e.clientX-offsetX);
var my=parseInt(e.clientY-offsetY);
var isInsideNow=(mx>x&&mxy&&my试试这个

<!DOCTYPE html>
<html>
<head>
<title>TEST</title>
<style>
body {
background-color:ivory;
}
#canvas {
border:10px solid red;
background-color:black;
}
 </style>
</head>
<body>
<canvas id="canvas" width="400" height="300">
</canvas>
<script src="http://code.jquery.com/jquery-latest.min.js"
        type="text/javascript"></script>

<script type="text/javascript">
var c = document.getElementById("canvas");
var ctx = c.getContext("2d");
var $canvas = $("#canvas");
var canvasOffset = $canvas.offset();
var offsetX = canvasOffset.left;
var offsetY = canvasOffset.top;
var scrollX = $canvas.scrollLeft();
var scrollY = $canvas.scrollTop();

var isDown = false;
var startX;
var startY;

var toggle=0;
    var x=150;
    var y=100;
    var w=100;
    var h=100;
    var wasInside=false;

ctx.fillStyle = "#04B45F";
ctx.fillRect(x, y, w, h);

function changeColor() {
if (toggle == 0) {
    ctx.fillStyle = "#FFFFFF";
    toggle = 1;
} else {
    ctx.fillStyle = "#04B45F";
    toggle = 0;
}
ctx.fillRect(x, y, w, h);
}
function handleMouseMove(e) {

e.preventDefault();
var mx = parseInt(e.clientX - offsetX);
var my = parseInt(e.clientY - offsetY);

var isInsideNow = (mx > x && mx < x + w && my > y && my <= y + h);

if (isInsideNow && !wasInside) {
    changeColor();
    wasInside = true;
} else if (!isInsideNow && wasInside) {
    wasInside = false;
}

}

$("#canvas").mousemove(function (e) {
handleMouseMove(e);
});

</script>
</body>
</html>

测验
身体{
背景颜色:象牙色;
}
#帆布{
边框:10px纯红;
背景色:黑色;
}
var c=document.getElementById(“画布”);
var ctx=c.getContext(“2d”);
var$canvas=$(“#canvas”);
var canvasOffset=$canvas.offset();
var offsetX=canvasOffset.left;
var offsetY=canvasOffset.top;
var scrollX=$canvas.scrollLeft();
var scrollY=$canvas.scrollTop();
var isDown=假;
var-startX;
var startY;
var=0;
var x=150;
变量y=100;
var w=100;
var h=100;
var wasinder=false;
ctx.fillStyle=“#04B45F”;
ctx.fillRect(x,y,w,h);
函数changeColor(){
如果(切换==0){
ctx.fillStyle=“#FFFFFF”;
切换=1;
}否则{
ctx.fillStyle=“#04B45F”;
切换=0;
}
ctx.fillRect(x,y,w,h);
}
功能手柄移动(e){
e、 预防默认值();
var mx=parseInt(e.clientX-offsetX);
var my=parseInt(e.clientY-offsetY);

var isInsideNow=(mx>x&&mxy&&my您的浏览器是否支持HTML5请先检查。您的浏览器是否支持HTML5请先检查。有人能解释这部分代码是如何工作的吗e.preventDefault();var mx=parseInt(e.clientX-offsetX);var my=parseInt(e.clientY-offsetY);我理解整个代码只是无法通过我的头脑理解而已???有人能解释一下这部分代码是如何工作的吗?e.preventDefault();var mx=parseInt(e.clientX-offsetX);var my=parseInt(e.clientY-offsetX);我理解整个代码只是无法通过我的头脑理解而已???