Automatically switch to a darker or a lighter version of an element depending on the brightness of images behind it.
Examples
Using BackgroundCheck with other plugins
If an element overlaps any of the images, either .background--dark
or .background--light
is added to it. BackgroundCheck does not change an element's style — you must do so using CSS.
For example, if <p>
has the following default style:
p {
color: white;
}
you can then add the following:
p.background--light {
color: black;
}
Classes are only added if the element overlaps an image. An element is considered to overlap an image if at least 50% (configurable) of it's area is covering that image.
The light and dark classes work well with simple backgrounds, but you might require an additional level of control for elaborate backgrounds. BackgroundCheck adds .background--complex
to an element if its background exceeds a certain level of complexity.
This class can be used as an intermediate state:
p.background--light {
color: black;
}
p.background--dark {
color: white;
}
p.background--complex {
color: gray;
}
or:
p.background--dark.background--complex {
color: #ccc;
}
p.background--light.background--complex {
color: #aaa;
}
Initialize
// Check all elements with a .target class against all images on a page
BackgroundCheck.init({
targets: '.target'
});
// Specific images
BackgroundCheck.init({
targets: '.target',
images: '.thumbnails'
});
Reprocess
// All targets
BackgroundCheck.refresh();
// Specific target
BackgroundCheck.refresh(target);
Setters and getters
// Get current targets
BackgroundCheck.get('targets');
// Change targets
BackgroundCheck.set('targets', '.header');
Stop
BackgroundCheck.destroy();
Used with .init()
, .set()
or .get()
{ dark: 'background--dark', light: 'background--light', complex: 'background--complex' }
{ r: 0, g: 255, b: 0 }
BackgroundCheck can also be used on an element that has a background-image
. For example:
.thumbnail {
background-image: url(image.jpg);
}
BackgroundCheck.init({
targets: '.target',
images: '.thumbnail'
});
Background Position and Size
Tested with the following units:
background-size
: cover, contain, auto, inherit, cm, em, px and %background-position
: top, left, center, right, bottom, inherit, cm, em, px and %Current Limitations
background-repeat
is not supported and is forced to no-repeat
background-origin
is forced to padding-box
Tested on IE 9-11, iOS 6/7 and the latest versions of Chrome, Firefox and Safari.