2016-08-09 42 views
0

ich benutze Croquis-Bibliothek, um auf Leinwand zu zeichnen. sein adaequatZeichnen auf Leinwand mit Standardtext

Szenario: ich will auf Leinwand eine Art von Wasserzeichen oder Platzhalter zeigen, vor dem Zeichnen und klicken mag ich, dass die Platzhalter löschen. Kann mir jemand sagen, was wird

Jede Hilfe getan werden muss

Grüße

+0

gut ich habe versucht, Label mit absoluter Position zu setzen, aber das drücken, um zweimal zu klicken. Deshalb habe ich gedacht, es in der Bibliothek zu reparieren. Croquis addieren Sie Schichten für das Zeichnen jetzt m denkend an addieren Sie etwas dort aber sein eine Drittparteibibliothek sein schwierig, Änderungen in ihm zu machen – Salman

+0

Können Sie Ihren Code bitte einfügen? Vielleicht können wir das Problem beheben, indem wir zweimal klicken, oder nach einer anderen Lösung suchen, aber es wäre nett, einen Ausgangspunkt zu haben :) – AgataB

+0

Im Grunde bin ich auf der Suche nach einer Idee, um es zu tun, um alle Code wld Bit schwierig einfügen – Salman

Antwort

0

Es klingt klar sein, wie Sie Ihre Leinwand mit einem Wasserzeichen initialisieren wollen und es auf den ersten Klick zu löschen. Ich bin nicht vertraut mit der Croquis Bibliothek, sondern eine Ebene könnte so etwas wie die JavaScript-Funktion Lösung unten sein - vielleicht können Sie es ändern Ihr Projekt zu passen ...

var firstFlag = true; 
var canvas = $('#canvas'); 
var ctx = canvas.getContext('2d'); 

function watermark(e) { 
    if (firstFlag) { 
     /* firstFlag === true -> add text to canvas */ 
     ctx.fillStyle = '#999'; 
     ctx.font('bold 20px Serif'); 
     ctx.textAlign = 'center'; 
     ctx.fillText('Watermark Text', canvas.width/2, canvas.height/2); 

     /* reset firstFlag */ 
     firstFlag = false; 
    } else { 
     /* firstFlag === false -> clear Canvas */   
     ctx.clearRect(0,0,canvas.width,canvas.height); 

     /* remove eventListener */ 
     canvas.removeEventListener('click',watermark,false); 
    } 
} 

--- 

/* when the page is ready 
    add EventListener to canvas element and... */ 
canvas.addEventListener('click',watermark,false); 
/* ...initialise the canvas by calling watermark() */ 
watermark(false); 

Die watermark() Funktion zweimal aufgerufen wird; einmal beim Aufruf durch Code (letzte Zeile) und einmal beim Anklicken des Canvas-Elements. Der erste Aufruf an watermark() fügt "Watermark Text" in der Mitte der Leinwand: der zweite Aufruf (beim Klicken) löscht die Leinwand und entfernt den "Klick" eventListener, so dass watermark() nie wieder aufgerufen wird, die Leinwand sauber und bereit für was auch immer Sie als nächstes tun möchten.

Hoffe, das hilft. :)