评论:图像擦除插件jQuery.eraser  [查看原文]

所属分类:媒体-图像

 55291  367  30
当前第1页 / 共2页
    右边?13?13??1o?0
    2022/12/20 11:30:59
    completefunction 不执行啊 回复
    眸晓 . 1
    2018/1/9 10:33:01

    在reset的时候,画布可能也不能完全覆盖,或者过大,我发现可以改一处代码(大概267行):

    reset: function() {
    	var $this = $(this),
    		width = $this.width(),
    		height = $this.height(),
    		data = $this.data('eraser');
    	if ( data )
    	{
    		data.ctx.globalCompositeOperation = "source-over";
    		data.ctx.drawImage( data.source, 0, 0 ,width,height);
    		data.ctx.globalCompositeOperation = "destination-out";
    		var n = data.numParts;
    		while( n-- ) data.parts[n] = 1;
    		data.ratio = 0;
    		data.complete = false;
    	}
    }
        眸晓 . 0
        2018/1/9 10:33:44

        可以实现,百分百覆盖画布

    回复
    メ Syd`zero_波1
    2017/12/15 14:29:35
    $('#yourImage').eraser( {
        completeRatio: .5,
        completeFunction: showResetButton
    });
    //if ( data.completeFunction != null ) data.completeFunction();

    如果大家的回调函数和我一样写的是clear清除画布的话,记着把clear函数里面的这行代码删掉,否则会进入递归死循环,报错超过js的最大执行次数

        solid121380
        2018/12/10 14:29:54
        是的是的 亲测可以 感谢
    回复
    这是一只神兽0
    2017/9/26 9:33:50

    作者大大,为什么我在最外层加上有滚动条的div,可擦除的地方就只有页面加载完毕之后可以看见的部分,而且向下滚动擦除还会错位

        ????0
        2018/9/25 17:19:50
        我也想问
        Amundsen3
        2019/1/20 21:04:09

        在源码中的 touchStart、touchMove、mouseDown、mouseMove这些方法函数的第一行,加上代码:

        var scrollY = document.documentElement.scrollTop || document.body.scrollTop;

        然后在下面的这一行  

        ty = event.pageY - data.posY;

        改成

        ty = event.pageY - data.posY + scrollY;

        就可以了。
        另外,在 clear 方法中,  

         if (data.completeFunction != null) data.completeFunction();

        这行代码注释掉,因为会导致死循环继而导致内存溢出的崩溃。

        Amundsen1
        2019/1/20 21:06:41

        在大概100行的上下,有一行代码是  

        ctx.drawImage(that, 0, 0);

        把它改成  

        ctx.drawImage(that, 0, 0, width, height);

        (否则在源码中会导致图片覆盖不对的问题)

        W M0
        2021/10/28 14:46:37
        试了 还是没能解决,你解决了吗?
    回复
    燃烧的皇子0
    2017/9/19 11:03:23

    在么 亲,为什么我换了两张大小一样的图片就出问题了,覆盖层的那个图片总是被放大了,不知道为什么,用你自带的图片正好

        Amundsen0
        2019/1/20 21:08:54

        在大概100行的上下,有一行代码是

        ctx.drawImage(that, 0, 0);

        把它改成

         ctx.drawImage(that, 0, 0, width, height);

        (否则在源码中会导致图片覆盖不对的问题)

    回复
    Laila0
    2017/6/18 17:30:44

    Maximum call stack size exceeded

        メ Syd`zero_波0
        2017/12/15 13:54:47

        请看我的最新评论

    回复
    王九蛋1
    2016/9/27 22:09:39

    解决手机重置reset方法,canvas drawImage图片问题

    reset: function() {
        var $this = $(this),
        data = $this.data('eraser');
        if (data) {
            var image = new Image();
            image.src = "images/canvas_mask.png";
            image.onload = function() {
                data.ctx.globalCompositeOperation = "source-over";
                data.ctx.drawImage(image, 0, 0, $this.width(), $this.height());
                data.ctx.globalCompositeOperation = "destination-out";
                var n = data.numParts;
                while (n--) data.parts[n] = 1;
                data.ratio = 0;
                data.complete = false;
            }
        }
    }
    回复
    伊利丹●羊驼??0
    2016/4/1 16:04:24
    作者大大你好,我也尝试过自己写刮刮卡一样的效果的canvas,在getImageData的这个功能,只能在服务端运行,静态页面会报错,跨域问题,请问有解决的办法吗? 回复
    *上邪!!!0
    2016/3/11 11:03:38
    $("#redux").eraser('clear');这个方法不是将蒙版取消掉吗?  怎么不起作用呢? 回复
    Crystal流砂0
    2015/10/17 10:10:33

    我用在手机上,jQuery.eraser.js做刮刮奖的页面,但是在手机上有时候会出现没有覆盖图层的问题,就是没有图擦去画布,只有下面的图片,请问这个问题要怎么解决???

    回复
    安夏、沫0
    2015/8/17 11:08:58

    请问这个怎么跟zepto.min.js和zepto.fullpage.js结合使用?

    回复
    Q.Ni0
    2015/3/15 17:10:17
    在手机上进度显示不准,百分之69前是正确的,但是 在手机上试的时候,显示到69都正常,之后,这个进度就不动了 回复
    Q.Ni0
    2015/3/15 17:05:25
    我发现ctx.drawImage(that, 0, 0,width,height); 的方法虽然能填满屏幕,但是涂抹区没有适应用上@ 回复
    Q.Ni0
    2015/3/3 16:04:53
    移动设备铺不满是因 为 设备像素比devicePixelRatio 引起的,比例不同! dip或dp,(device independent pixels,设备独立像素)与屏幕密度有关。 回复
    该用户名已注册0
    2015/1/14 12:21:07
    上面忘记说了,是更改插件里的代码,即“jquery.eraser.js”文件。(话说为啥评论不能编辑。。好拙计) 回复

讨论这个项目(30)回答他人问题或分享插件使用方法奖励jQ币 评论用户自律公约

取消回复