如何使用触摸事件使我的画布签名具有触感?

时间:2018-11-11 11:15:37

标签: javascript

我想尽一切办法使画布具有触感:我已经添加了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));       
}

感谢您的帮助:)

0 个答案:

没有答案