繁体   English   中英

我无法将图像添加到缩略图库的画布中

[英]I cannot add images to the canvas of my thumbnail image gallery

我是html和javascript的新手。 我试图通过从图库调用图像来将图像添加到画布上。 我在脚本中使用了onclick方法,因此无法正常工作,因此我很挣扎。 我在下面添加了我的代码。 谢谢您的帮助! 作业问...

实现imgOnClick(elmt)函数,以便将elmt给定的图像绘制到画布的drawImage()方法上。 elmt将是一个标记对象。 画布的ID为imgresult。

在文档就绪功能中,让每个缩略图图像将其单击事件设置为imgOnClick()函数。 我建议您先对一个图像进行测试,然后再对其余图像实施。 确保将图像缩放到可用大小。

   <pre> <code><!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <link rel=stylesheet type="text/css" href="memeory.css">
        <title>Meme-ory :: Javascript Meme Generator</title>
        <script type="application/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"></script>

        <script>
            $( document ).ready(function() {
           $('.thumbnail').click(imgOnClick('img'){ 

           });


       });


        function imgOnClick('img') {
        var canvas = document.getElementById("imgresult");
        var ctx = canvas.getContext("2d");
        var img = document.getElementById("closeenough");

        ctx.drawImage(img, 10, 10);

        };

            };

            function buttonOnClick() {

            };



        </script>
    </head>

    <body>
        <header>
            <h1>Meme-ory: Raging on in the Moonlight!</h1>
        </header>

        <main>


            <div id="controls">
                <form>
                    <label for="toptext">Top Text:</label>
                    <input id="toptext" type="text">

                    <label for="bottomtext">Bottom Text:</label>
                    <input id="bottomtext" type="text">

                    <input id="createMemeButton" type="button" value="Give me Meme!">
                </form>
            </div>

            <div id="imagegallery">
                <img class="thumbnail" id="closeenough" src="closeenough.png" alt="close enough">
                <img class="thumbnail" id="cutenessoverload" src="cutenessoverload.png" alt="cuteness overload">
                <img class="thumbnail" id="deskflip" src="deskflip.png" alt="deskflip">
                <img class="thumbnail" id="lol" src="lol.png" alt="LOL">
                <img class="thumbnail" id="trollface" src="trollface.png" alt="troll face">
            </div>

            <div id="memeresult">
                <canvas id="imgresult">
                </canvas>
            </div>
        </main>
    </body>
</html>

如果尝试选择页面中的元素,则只能在创建元素时选择它。 您不能在存在之前选择它。 在这种情况下,您尝试在页面的HEAD中选择画布和图像,但是这些元素仅稍后在您的正文中定义。

有两个简单的修复程序:

您可以将脚本代码移动到页面的末尾(在</body>之前),也可以将代码包括在$( document ).ready(function() {块中,如下所示:

$(document).ready(function() {

    window.onclick = function imgOnClick(e) {
        var canvas = document.getElementById("imgresult");
        var ctx = canvas.getContext("2d");
        var img = document.getElementById("closeenough");
        ctx.drawImage(img, 0, 0);
    };
});

两种方式都可以确保您在创建元素后尝试选择它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM