谁能告诉我为什么该功能无法在Firefox中执行。除此功能外,整个文件中的其余Javascript函数均能正常工作(它不会执行,控制台中不会出错)。我怀疑这是pageX
属性,但是事实并非如此。
var prevX = 0;
var i = 0;
var drgleft = 0;
var drgright = 0;
function sequence_1(event){
if(prevX == 0){
prevX = event.pageX;
return false;
}
//drag left
if(prevX > event.pageX){
console.log('dragged left');
drgleft++;
if(drgleft == 2){
drgleft = 0;
i--;
if(i < 0){
i = 30; //for optimization reasons, input the cache.length value manually (this avoids unnecessary errors in the console and laggy framerate as a result).
}
document.getElementById("TheBigOne").src = cache[i].src; //use console.log(i); as a method of verifying that the code is executing correctly
}
}
else if(prevX < event.pageX){
console.log('dragged right');
drgright++;
if(drgright == 2){
drgright = 0;
i++;
if(i > 30){ //for optimization reasons, input the cache.length value manually (this avoids unnecessary errors in the console and laggy framerate as a result).
i=0;
}
document.getElementById("TheBigOne").src = cache[i].src;
}
}
else{
}
prevX = event.pageX
}
编辑:
在我的第一篇文章中,我没有包含调用该函数的相关HTML代码,对此我深表歉意,并将在下面实现。
<!DOCTYPE html>
<html>
<body>
<div class="The_main_event" draggable = "true" ondrag="sequence_1(event)" id = "GD">
<img src="file:///C:/Users/Harry/Desktop/Website/Web_aeroplane/Web%20Test.0031.png" id="TheBigOne">
</div>
</body>
</html>
最佳答案
是UIEvent还是MouseEvent?
https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/pageX
https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/pageX
UIEvents不是标准的,并且上面链接的文档将Firefox作为未知兼容性。
我猜您何时说它不会运行,您的意思是,它无法按预期运行。在您的情况下,它看起来要么返回false,要么除了尝试更新prevX
外什么也不做。如果event.pageX
是undefined
,因此prevX
是undefined
,它将导致您的函数无效,并且似乎无法运行。
编辑:
看到更新后,看起来好像是因为您正在监听的事件没有pageX。请参阅此处以获得文档:
https://developer.mozilla.org/en-US/docs/Web/Events/drag
这也可能会帮助FireFox onDrag Pagex PageY always zero ;(