我想尽一切办法使画布具有触感:我已经添加了touch事件和e.preventdefault(以避免滚动),但是画布上什么都没有出现(该方法在桌面上可以正常使用)。检测到签名后,启用预订按钮(注册器)(在移动版本上就是这种情况,尽管签名板上没有出现抽奖)。这是我的代码(我错过了什么?):
initCanvas(){
this.context.clearRect(0, 0, 250, 250);/*canvas vierge*/
this.context.lineWidth = this.lineWidth;
this.canvas.style.display = "block";
this.enregistrer.style.display = "block";
}
deplacement(e) {
if(this.dragging === true){
this.context.lineTo(e.offsetX, e.offsetY);
this.context.stroke();
this.context.beginPath();
this.context.arc(e.offsetX, e.offsetY, this.radius, 0, Math.PI*2);/*defini le 1er point en forme de cercle à chaque clic*/
this.context.fill();/*rempli le cercle*/
this.context.beginPath();
this.context.moveTo(e.offsetX, e.offsetY);
}
}
deplacementMobile(e){
e.preventDefault();
if(this.dragging === true){
this.context.lineTo(e.ClientX, e.clientY);
this.context.stroke();
this.context.beginPath();
this.context.arc(e.ClientX, e.ClientXY, this.radius, 0, Math.PI*2);/*defini le 1er point en forme de cercle à chaque clic*/
this.context.fill();/*rempli le cercle*/
this.context.beginPath();
this.context.moveTo(e.offsetX, e.offsetY);
}
}
appuieMobile(e){
this.dragging = true;
this.deplacementMobile(e);
}
appuie(e){
this.dragging = true;
this.deplacement(e);
}
relache(){
this.dragging = false;
this.context.beginPath();/*se desengage du chemin precedent*/
}
initEvent(){
this.canvas.addEventListener("mousedown", function(e) {
this.appuie(e);
this.compteur++;
this.enregistrer.disabled = false;
}.bind(this));
this.canvas.addEventListener("mousemove", function(e) {
this.deplacement(e);
}.bind(this));
this.canvas.addEventListener("mouseup", function() {
this.relache();
}.bind(this));
this.canvas.addEventListener("touchstart", function(e) {
this.appuieMobile(e);
this.compteur++;
this.enregistrer.disabled = false;
console.log(this.compteur);
}.bind(this));
this.canvas.addEventListener("touchmove", function(e) {
this.deplacementMobile(e);
}.bind(this));
this.canvas.addEventListener("touchend", function() {
this.relache();
}.bind(this));
}
感谢您的帮助:)