簡體   English   中英

如何使html按鈕調用外部javascript繪圖功能

[英]How to make html button call external javascript drawing function

所以我的最終目標是擁有一個簡單的網頁,其中包含10個按鈕,每個按鈕在被點擊時調用不同的javascript函數。 這些功能中的每一個都是某種繪圖。 首先,我只是習慣於調用外部js文件的按鈕。

    <html>
<head>
  <script type = "text/javascript" src="/Users/myname/Downloads/p5-release 3/empty-example/sketch.js">
  </script>

</head>

<body>
    <button onclick="setup();draw();">
        Draw me a circle!
    </button>
</body>
</html>

上面是我的html文件,下面是我試圖調用該函數的javascript文件。

function setup() {
  createCanvas(1300, 800);
}

function draw(){
    ellipse(100,100,80,80);
}

按鈕出現但在點擊后沒有其他任何事情發生。 我希望按鈕在點擊后消失,只留下橢圓。 這有可能嗎? 我對網絡開發很新(我昨天開始),所以如果這是一個非常容易解決的問題,我很抱歉。

我不知道這是否有用但是..如圖所示你可以調用setup()函數中的第二個函數draw()JSFiddle

更新

HTML:

<button id="myBtn">Draw me a circle!</button>
<div id="holder"></div>

JS:

btn = document.getElementById("myBtn");
btn.onclick = function setup() {
    btn.remove();
    //alert("Function Setup!");
    document.getElementById("holder").innerHTML = '<canvas id="myCanvas" width="490" height="220"></canvas>';
    draw();
}

function draw() {
    //alert("Function Draw!");
    var canvas = document.getElementById('myCanvas');
    var context = canvas.getContext('2d');
    var centerX = canvas.width / 2;
    var centerY = canvas.height / 2;
    var radius = 70;

    context.beginPath();
    context.arc(centerX, centerY, radius, 0, 2 * Math.PI, false);
    context.fillStyle = 'green';
    context.fill();
    context.lineWidth = 5;
    context.strokeStyle = '#003300';
    context.stroke();
}

對於多個按鈕,只需給每個按鈕一個id,並為每個按鈕創建一個js var:

btn1 = document.getElementById("myBtn1");
btn2 = document.getElementById("myBtn2");

注意: code802,值得一提的是,我將使用SVG繪制畫布:

  • 更多的支持
  • SVG是矢量圖形,無論您放大多少或屏幕分辨率是什么,都意味着無像素或模糊邊緣。
  • 它可以是外部或css,img,object或inner-html或src。
  • 它可以在很多情況下緩存。
  • 你也可以操縱它並以你想要的任何方式設置動畫,你可以用svg做任何事情

https://css-tricks.com/using-svg/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM