我試圖停止mouseout上的旗幟,但它不工作。一旦我mouseover它的作品,但一旦我鼠標mouseover行動循環它不停止。我可以知道我做了什麼錯誤嗎?Javascript鼠標事件不起作用
這是我的js代碼:
elem.addEventListener("mouseout", mouseOut , false);
function mouseOut(event) {
var mouseX,
mouseY;
event.preventDefault(); // stops browser to do what it normally does
// determine where mouse is
mouseX = event.pageX;
mouseY = event.pageY;
// do something useful, e.g. change the flag to waving when mouse is over flag
clearBangladesh();
}
function clearBangladesh(){
canvas.clearRect(0,0,300, 150);
drawBangladesh();
}
這是動畫代碼:
function waveFlag(canvas, wavelength, amplitude, period, shading, squeeze){
if (!squeeze) squeeze = 0;
if (!shading) shading = 100;
if (!period) period = 200;
if (!amplitude) amplitude = 10;
if (!wavelength) wavelength = canvas.width/10;
var fps = 30;
var ctx = canvas.getContext('2d');
var w = canvas.width, h = canvas.height;
var od = ctx.getImageData(0,0,w,h).data;
// var ct = 0, st=new Date;
return setInterval(function(){
var id = ctx.getImageData(0,0,w,h);
var d = id.data;
var now = (new Date)/period;
for (var y=0;y<h;++y){
var lastO=0,shade=0;
var sq = (y-h/2)*squeeze;
for (var x=0;x<w;++x){
var px = (y*w + x)*4;
var pct = x/w;
var o = Math.sin(x/wavelength-now)*amplitude*pct;
var y2 = y + (o+sq*pct)<<0;
var opx = (y2*w + x)*4;
shade = (o-lastO)*shading;
d[px ] = od[opx ]+shade;
d[px+1] = od[opx+1]+shade;
d[px+2] = od[opx+2]+shade;
d[px+3] = od[opx+3];
lastO = o;
}
}
ctx.putImageData(id,0,0);
},1000/fps);
}
這是鼠標懸停功能:
function mouseMove(event) {
var elem = document.getElementById('bangladesh-canvas');
var mouseX,
mouseY;
event.preventDefault(); // stops browser to do what it normally does
// determine where mouse is
mouseX = event.pageX;
mouseY = event.pageY;
// do something useful, e.g. change the flag to waving when mouse is over flag
waveFlag(elem, 50, 5, 200, 250, -0.1);
}
這是在華匯到在鼠標停止事件?在此先感謝
如果你的意思是,你只是想防止默認的使用,AFAIK,它是! – IsraGab
@nnnnnn我已經添加了動畫代碼請看看 – anonymous5671
對不起@nnnnnn這是我第一次寫java代碼。你能詳細解釋一下嗎 – anonymous5671