Broken is beautiful.
Break everything
Break it ones and keep it broken.
var static = document.querySelector('.static');
var static_glitch = new Glitch(static, function (img) {
static.src = img.src;
}).ones(4);
static.onclick = function() {
static_glitch.ones(4)
}
Break it again and again
var animated = document.querySelector('.animated');
var animated_glitch = new Glitch(animated, function (img) {
animated.src = img.src;
}).anim(2);
glitch.js is asynchronous, and will fire the supplied callback function when it's done. After the initialization you can access the object to do changes on the fly.
//Set up a callback function,
//this gets one argument every time the element is gliched
function callback_when_image_is_glitched(image_object) {
//Do whatever you like with the returned Image object
}
var glitch = new Glitch(
element_to_glitch,
callback_when_image_is_glitched
);
//By default glitch.js will not do anything,
//this is to facilitate on demand usage (wich is nice)
glitch.ones();
glitch.js eats images of any kind that can be rendered as a <img/>
, but that's not all. Anything that can be rendered in a canvas
can be fed to glitch.js
//All public methods are chaniable!
//Animates the glitching with the supplied strength
glitch.anim({strength_int});
//Stops the glitching if it's animated
glitch.stop();
//Update the amount of glitching
glitch.setStrength(strength_int);
//Sets the FPS of the glitch animation
glitch.setFps({frames_per_second_int})
//Update the element to glitch
//(e.g. if the canvas is updated)
glitch.update({element_to_glitch});
//Glitch it ones with the supplied strength
glitch.ones({strength_int});
//Resets the internal image object, and fires the callback
glitch.reset();
Bundled with the glitch functionality there's a couple of methods to do things a bit easier. I added these because I seemed to need them.
//Glitch a text object, while keeping it selectable
glitchText({ target_element }, { settings_object });
/*
The settings object can have any or
all of these keys (here with default values):
"strength": 1, // Amount of glitch
"baseline": "hanging", //Text baseling
"background": "#000", //Text background (use the CSS rule 'background-blend-mode' for interesting effects)
"animated": false, //Animates the glitch
"class": "glitched", //Specifies the class to be added after glitching (convenient for styling)
"fps": 60, //Used if animation flag is set to true
"clearText": false //Clear the text object after render
*/
//Glitch a image ones
glitchImage({ target_element }, { settings_object });
/*
The settings object only accepts one optional setting
"strength": 1, // Amount of glitch
*/
That's it. ♥