繁体   English   中英

如何使用onclick事件更改Fabric JS的叠加图像?

[英]how do i change overlay image of fabric js with onclick event?

我是javascript新手,所以我需要一些帮助。 我创建了一个网站,人们可以在其中上传图片,客户可以通过单击下一个或上一个来选择其框架。 问题是我无法更改框架,否则一切都正常。 这是代码

                       <canvas id="canvas" width="500" height="610" style="border:0px solid gray"></canvas>
        <input type="file" id="imgLoader">
        <img src="https://www.wpclipart.com/page_frames/movie/film_frame_page_T.png" id="fg_img" width="500" height="610" style="display: none;">

        <script>
        var canvas = new fabric.Canvas('canvas');
        var up = document.getElementById("fg_img").getAttribute("src");
    canvas.setOverlayImage(up, canvas.renderAll.bind(canvas));

document.getElementById('imgLoader').onchange = function handleImage(e) {
    var reader = new FileReader();
    reader.onload = function (event) { console.log('fdsf');
        var imgObj = new Image();
        imgObj.src = event.target.result;
        imgObj.onload = function () {

            var image = new fabric.Image(imgObj);
            image.set({


            });
            //image.scale(getRandomNum(0.1, 0.25)).setCoords();
            canvas.add(image);


        }

    }
    reader.readAsDataURL(e.target.files[0]);
}
</script>

这是图像更改功能

<script type="text/javascript">
var img_tk="m1";
   function imgChange1(){
    var newImage = document.getElementById('fg_img');


        if (img_tk=="m1"){
                newImage.src="images/7.png";
                img_tk="m2";
            }
        else if (img_tk=="m2"){
                newImage.src="images/4.png";
                img_tk="m3";
            }
        else if (img_tk=="m3"){
                newImage.src="images/6.png";
                img_tk="m4";
            }
        else {
                newImage.src="images/2.png";
                img_tk="m1";
            }
    }

</script>

提前致谢 :)

您可能会遇到某种缓存问题,例如: 更改“ img” html元素的“ src”不会刷新它

在这种情况下,您可以通过在src之后添加日期来解决此问题,如下所示:

newImage.src = "images/7.png?t=" + new Date().getTime();

暂无
暂无

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

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