Skip to content

Instantly share code, notes, and snippets.

@dannymidnight
Created July 7, 2015 04:54
Show Gist options
  • Save dannymidnight/984463176485ee663948 to your computer and use it in GitHub Desktop.
Save dannymidnight/984463176485ee663948 to your computer and use it in GitHub Desktop.
Responsive background image
import Viewport from './viewport';
import $ from 'jquery';
export default function createResponsiveBgImages() {
const viewport = new Viewport();
$('[data-image]').each((idx, el) => {
let images = {};
let data = $(el).data();
Object.keys(data).forEach((key) => {
let match = key.match(/image(.*)/);
if (match) {
let size = match[1].toLowerCase();
images[size] = data[match[0]];
}
});
viewport.on('change', () => {
if (viewport.inSize(Object.keys(images))) {
$(el).css('background-image', `url(${images[viewport.size]})`);
} else {
$(el).css('background-image', `url(${data.image})`);
}
});
viewport.handleResize();
});
}
@dannymidnight
Copy link
Author

Example markup

<div data-image="default.jpg" data-image-small="small.jpg" data-image-large="large.jpg" />

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment