我找到了一个脚本,可以在Opera的鼠标手势上添加鼠标轨迹。非常好,但有一个问题。它会检测鼠标按钮何时关闭并开始绘制线条但是它不会检测何时释放鼠标按钮。跟踪显示一段时间(1秒)。是否可以更新脚本,以便只要按下按钮鼠标就会在屏幕上显示轨迹?
该脚本位于http://extendopera.org/userjs/content/gesture-tails
var GestureTrail={
//options:
opacity:1,
color:'#f27',
canvas:null,
_2d:null,
start:null,
cur:null,
isdown:false,
init:function(){
/* create a transparent canvas element the size of
the full window and insert it into the document */
var canvas=document.createElement('canvas');
canvas.height=window.innerHeight;
canvas.width=window.innerWidth;
document.body.appendChild(canvas);
canvas.style="position:fixed;top:0;display:none;z-index:-999;left:0;opacity:"+this.opacity+";";
this.canvas=canvas;
/* grab the 2d methods for the canvas element */
this._2d=this.canvas.getContext('2d');
window.addEventListener("mousemove",function(e){GestureTrail.draw(e);},0);
window.addEventListener("mouseup",function(e){GestureTrail.release();},0);
},
click:function(e){
if(e.button!=2){return true;} // if not rightclick
this.start={x:e.clientX,y:e.clientY}; // set the line start-point to the mouse position
this._2d.strokeStyle=this.color;
this.isdown=true;
setTimeout(function(){GestureTrail.release();},1000); // thanks to Somh for thinking of this
},
draw:function(e){
if(!this.isdown){return;} // if the mouse isn't down
this.canvas.style.zIndex="999"; // bring the canvas element to the top
this.canvas.style.display="block"; /* (must be done on move - if done on mousedown
it obscures text selection (HotClick) context menu) */
this.cur={x:e.clientX,y:e.clientY}; // set point to begin drawing from
this._2d.beginPath();
this._2d.moveTo(this.start.x,this.start.y);
this._2d.lineTo(this.cur.x,this.cur.y);
this._2d.stroke();
this.start=this.cur; /* sets the startpoint for the next mousemove to the
current point, otherwise the line constantly restarts
from the first point and you get a kind of fan-like pattern */
},
release:function(){
this._2d.clearRect(0,0,window.innerWidth,window.innerHeight); // wipe the trails from the entire window
this.isdown=false;
this.canvas.style.zIndex="-999"; // send the canvas element back down below the page
}
};
window.opera.addEventListener("BeforeEvent.mousedown",function(e){GestureTrail.click(e.event);},0);
window.addEventListener('DOMContentLoaded',function(){GestureTrail.init();},0);
答案 0 :(得分:0)
删除:
setTimeout(function(){GestureTrail.release();},1000); // thanks to Somh for thinking of this
点击功能结束时的那些。这应该是全部
但这是一个真正的编程问题的网站,而不是客户在没有付款的情况下寻找程序来完成他们的工作