[英]Javascript “onmousemove()” works in Chrome but not in Firefox
我已经尝试过谷歌搜索,但找不到任何解决方案。
鼠标悬停在底部的四个塔楼时,它们会显示不同的图像(透明度较低)。 这在Google Chrome浏览器中可以正常运行,但在Firefox中则不能。
这是网站: http : //cdelphinus.com/test/mormontowerdefense.html (您可以右键单击->查看源代码)以获取整个代码(app.js)
这是问题代码:
在我的HTML中:
<canvas id="Canvas_One" width="1160" height="580" style="border:2px solid yellow; background-color:black; padding-left:0;margin-left:0;" onmousemove="lolol(event)" onclick="haha(event)"></canvas>
在我的app.js文件中:
这是我的问题的简化版本,适用于chrome,但不适用于Firefox:
//function lolol(event) {
// event = event || window.event;
// alert(event.x);
//}
我有一种感觉,一旦上述警告显示在Firefox中,其余的将神奇地修复。
这是正在发生的事情的更详细的版本
function lolol(event) {
event = event || window.event;
ix = event.x - canvas.offsetLeft + 10;
iy = event.y- canvas.offsetTop + document.body.scrollTop;
//...
if(iy > 510) {
var dist = Math.round(ix / 50) - 1;
if(dist < towerpurchaseoptions.length){
towerpurchaseoptions[dist].isActive = true;
//textout(towerpurchaseoptions[dist].name);
for(var i=0; i<towerpurchaseoptions.length; i++) {
if(i != dist) {
towerpurchaseoptions[i].isActive = false;
}
}
}
}
//....
}
如果towerpurchaseoptions [n] .isActive == true,则将图像替换为不透明的图像
我检查了您的问题,原因仅在于
function lolol(event) {
event = event || window.event; //For IE
ix = event.x - canvas.offsetLeft + 10;
//这里ix是ruturning nan
iy = event.y- canvas.offsetTop + document.body.scrollTop;
//这里是ruruing nan
那为什么呢? 因为事件在Firefox中没有属性.x可能是一些问题,您可以将其更改为
function lolol(event) {
event = event || window.event; //For IE
ix = event.clientX - canvas.offsetLeft + 10;
iy = event.clientY- canvas.offsetTop + document.body.scrollTop;
它将工作谢谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.