如何使html按钮调用外部javascript绘图功能

问题描述 投票:4回答:1

所以我的最终目标是拥有一个简单的网页,其中包含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);
}

按钮出现但在点击后没有其他任何事情发生。我希望按钮在点击后消失,只留下椭圆。这有可能吗?我对网络开发很新(我昨天开始),所以如果这是一个非常容易解决的问题,我很抱歉。

javascript html
1个回答
1
投票

我不知道这是否可以帮助但是..如图所示你可以调用draw()函数中的第二个函数setup()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/

© www.soinside.com 2019 - 2024. All rights reserved.