Giter VIP home page Giter VIP logo

jquery.eraser's Introduction

jQuery.eraser v0.5.2

a jQuery plugin that makes an image erasable (with mouse or touch movements)

This plugin replaces the targeted image by an interactive canvas that can be erased using touch or mouse inputs. You can specify a callback for completion and set the brush size.

Please note that I don't claim that the completion detection process is ultimately accurate. In fact you should rather use a completeRatio around 0.8 if you want a near-complete erase process.

What's new in 0.5.2

Added the 'enable/disable/enabled' methods (see details in the Usage section)

What's new in 0.5.1

Added a 'progress' method (see details in the Usage section)

What was new in 0.5.0

Eraser now takes care of checking if the target image is already loaded. If not, it registers a callback on the load event and waits for the bitmap data to be available.

You don't have to worry anymore about anything but erasing.

Usage :

To transform an image or canvas into an erasable canvas, just use this syntax :

$('#yourImage').eraser();

To specify a brush size, add some options (default value is 40) :

$('#yourImage').eraser( { size: 30 } );
// and you can also change the size later :
// $('#yourImage').eraser( 'size', 30 } );

You can reset the canvas (back to the original image) with this code :

$('#yourImage').eraser('reset');

And you can erase all the canvas' content by calling :

$('#yourImage').eraser('clear');

You can change whether erasing is enabled or disabled by calling the enable or disable methods :

$('#yourImage').eraser('enable');
$('#yourImage').eraser('disable');

And you can check whether erasing is enabled or disabled by calling :

$('#yourImage').eraser('enabled');

To get a callback when 50% of the image has been erased, use the following options :

$('#yourImage').eraser( {
	completeRatio: .5,
	completeFunction: showResetButton
});

If you need to manually query the progress of the user, use the progress method :

var progress = $('#yourImage').eraser('progress'); // returns a value between 0 and 1

There is also a progressFunction option where you can provide a function that will be called each time the user erases a new area. It receives as argument the normalized progress value (0.0 to 1.0).

$('#yourImage').eraser( {
	progressFunction: function(p) {
		console.log(Math.round(p * 100) + '%');
	}
});

URLs :

* https://github.com/boblemarin/jQuery.eraser
* http://minimal.be/lab/jQuery.eraser/

Created by @boblemarin

jquery.eraser's People

Contributors

boblemarin avatar bryant1410 avatar fantix avatar gerrit avatar jackwakefield avatar liubiantao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jquery.eraser's Issues

Unable to erase image on a bootstrap modal pop up

Hi,
I have a requirement where i need to pop up the selected image and load eraser functionality to it. When i associated the eraser plugin to the image on the modal pop up it is not enabling the eraser functionality.

Please guide me on how to achieve this.

100% width

Hi!
Is there a possibility to set images to full width, or full height? When i try to do that with css, 100% width has only background image. Foreground has fixed width, so images doesn't overlaps.

zepto support

if i change jquery into zepto , it can`t find "beginPath"
i suppose the return function is not the same as the jquery
how can i solve it?

Hidden Div cannot work

I have a hidden element.
eraser cannot get the offset value.
Then in MouseDown event
I add these codes

    if (data.posX == 0) {
        data.posX = $this.offset().left;
        data.posY = $this.offset().top;
    }

can fix this bug

How to replace the cursor?

I tried to change the cursor. So, I used some CSS to do it. But I was unable to achieve it.

#redux {
    cursor: url("assets/img/brush.png"), url("assets/img/brush.cur"), default;
}

Could you add this as a feature? That would be so great if it is possible.

android default browser erase issue

HI,

First of all - great script, does exactly what I was looking for.

I have noticed in default android browser (tested with samsung s3 & galaxy tab running android 4.1.1- 4.2) the erase function doesn't work as expected.

I have hooked up a callback (which fires) but the panel doesn't erase.
Works fine in Chrome for android.

Any idea why this is happening?

it's not an issue it's a solution

In line 98 do this: ctx.drawImage(that, 0, 0, width, height);
and in line 326 this: data.ctx.drawImage( data.source, 0, 0 , data.w, data.h);

fix an issue in devices whith other devicePixelRatio but 1 (like he new iPad)

Ok, i'm gonna write this in spanish, just because my shitty english: En la lína 98 pega esto:ctx.drawImage(that, 0, 0, width, height); y en la línea 326 esto: data.ctx.drawImage( data.source, 0, 0 , data.w, data.h);

Arregla un problema en los dispositivos que tienen un devicePixelRatio distinto de 1 (como el nuevo iPad)

Eraser not working instantaneously on desktop browser (chrome or safari), have to resize browser window to make it work?

Hello,

First of all, thanks a lot for this great plugin.

It's working perfectly on mobile, but on desktop browser (chrome or safari), I have a minor issue I can't fix :

  1. It doesn't work by default, eraser seems to be blocked, impossible to erase the canvas
  2. If I resize the browser window, then it works: I can erase my canvas (which is a car in this example)

See video of issue here: https://app.usebubbles.com/qgE8TyBph6PshyrD8NxJQc/comments-on-newtab/

Thanks a lot in advance for your help!

image

Callback after percentage complete

I have been trying to get this to work for a while the way you describe in your instructions, but after further investigation, I am finding that there is absolutely no reference to "completeRatio" or "completeFunction" in the jQuery.eraser code.

Was something accidentally omitted in the commit?

evaluatePoint计算完成度问题

evaluatePoint 函数中var p = Math.floor(tx / data.size) + Math.floor(ty / data.size) * data.colParts;是否应该改成var row=Math.ceil(ty / data.size)-1;row=(row<0)?0:row;var p = Math.floor(tx / data.size) +row * data.colParts;

progress changes everytime I finish brush whole img

everytime I finish brush the whole image, the progress is different, sometimes 93%, sometimes 97%, and never 100%. Seems if I buttonup more times, the final progress will be higher, if I click down and drag a lot and not release the button, the progress will be lower. how this happen and can you help to fix, I'd like to have a 100% progress, thanks

Callback function

Hi

Firstable I would like to say thanks for this great plugin. Everything works perfectly for my purpose and it does seems like the besteraser (scratch)plugin available online.

I have been trying to get the callback function working.

however the function is called when the document is loaded. ( instead of being calledback when the eraser function complete).

function test() {
$('#test').fadeIn();
}
function init(event) {
$("#redux").eraser({
completeRatio: 0.8,
completeFunction: test()
});
}
addEventListener( "load", init, false );

Complete not firing.

If the width or the height or the brush is greater than the width or height of the image complete cb does not fire.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.