2016-11-30 2 views
-2

Dies ist ein JavaScript-Code zum Zeichnen von Linien auf Leinwand.Ausführen von Javascript-Datei auf klicken

var canvas, 
context, 
dragging = false, 
dragStartLocation, 
snapshot; 


function getCanvasCoordinates(event) { 
    var x = event.clientX - canvas.getBoundingClientRect().left, 
     y = event.clientY - canvas.getBoundingClientRect().top; 

    return {x: x, y: y}; 
} 

function takeSnapshot() { 
    snapshot = context.getImageData(0, 0, canvas.width, canvas.height); 
} 

function restoreSnapshot() { 
    context.putImageData(snapshot, 0, 0); 
} 


function drawLine(position) { 
    context.beginPath(); 
    context.moveTo(dragStartLocation.x, dragStartLocation.y); 
    context.lineTo(position.x, position.y); 
    context.stroke(); 
} 

function dragStart(event) { 
    dragging = true; 
    dragStartLocation = getCanvasCoordinates(event); 
    takeSnapshot(); 
} 

function drag(event) { 
    var position; 
    if (dragging === true) { 
     restoreSnapshot(); 
     position = getCanvasCoordinates(event); 
     drawLine(position); 
    } 
} 

function dragStop(event) { 
    dragging = false; 
    restoreSnapshot(); 
    var position = getCanvasCoordinates(event); 
    drawLine(position); 
} 

function init() { 
    canvas = document.getElementById("canvas"); 
    context = canvas.getContext('2d'); 
    context.strokeStyle = 'black'; 
    context.lineWidth = 6; 
    context.lineCap = 'round'; 

    canvas.addEventListener('mousedown', dragStart, false); 
    canvas.addEventListener('mousemove', drag, false); 
    canvas.addEventListener('mouseup', dragStop, false); 
    } 

Wie kann ich eine Schaltfläche hinzufügen, so dass beim Klicken auf den Code ausgeführt werden? Wie kann ich das machen? Ein Beispiel unten ist die Sache

<input type="BUTTON" value="Exit" onclick="execute the javascript file to draw line" > 
+0

haben Sie es auf Google gesucht – Mahi

+0

Dies ist genau das, was Sie gerade „als Beispiel“ – Hammerbot

+0

@El_Matella schrieb, wenn die Leitungstaste i bekommt aktivieren kann nicht frei Zeichenwerkzeug verwenden. Wie kann ich das vermeiden? –

Antwort

-1

Zuerst würde ich das "Knopf" -Tag anstelle von "Eingabe" für bessere Semantik verwenden. Zweitens, geben Sie dem Button einen "onclick" -Parameter und setzen Sie ihn gleich Ihrer "init" -Funktion.

<button name="draw-line" onclick="init()" 
0

zunächst zu klären, müssen Sie die JS-Datei in Ihrem HTML enthalten:

<script src='file.js'></script> 

dann können Sie die init() Funktion Onclick ausführen:

+0

downvoted, wirklich? um zu sagen, was als Antwort angenommen wurde, nur mit mehr Details? ok dann ... – xShirase

+0

warum gehst du immer mit stimmen. es ist OP Priorität. was auch immer er will – Mahi

Verwandte Themen