如何使用onclick事件更改fabric js的叠加图像?

时间:2016-04-22 17:47:59

标签: javascript onclick overlay fabricjs

我是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>

提前感谢:)

1 个答案:

答案 0 :(得分:-1)

您可能遇到某种缓存问题,例如:Changing "src" of an "img" html element doesn't refresh it

在这种情况下,您可以通过在src之后添加日期来修复它:

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