/****************************************************** * jQuery plug-in * Easy Background Image Resizer * Developed by J.P. Given (http://johnpatrickgiven.com) * Useage: anyone so long as credit is left alone ******************************************************/ (function($) { // Global Namespace var jqez = {}; // Define the plugin $.fn.ezBgResize = function(options) { // Set global to obj passed jqez = options; // If img option is string convert to array. // This is in preparation for accepting an slideshow of images. if (!$.isArray(jqez.img)) { var tmp_img = jqez.img; jqez.img = [tmp_img] } $("").attr("src", jqez.img).load(function() { jqez.width = this.width; jqez.height = this.height; // Create a unique div container $("body").append('
'); // Add the image to it. $("#jq_ez_bg").html(''); // First position object $("#jq_ez_bg").css("display","none"); // Overflow set to hidden so scroll bars don't mess up image size. $("body").css({ "overflow":"hidden" }); resizeImage(); }); }; $(window).bind("resize", function() { resizeImage(); }); // Actual resize function function resizeImage() { $("#jq_ez_bg").css({ "position":"fixed", "top":"0px", "left":"0px", "z-index":"-1", "overflow":"hidden", "width":$(window).width() + "px", "height":$(window).height() + "px", "opacity" : jqez.opacity }); // Image relative to its container $("#jq_ez_bg").children('img').css("position", "relative"); // Resize the img object to the proper ratio of the window. var iw = $("#jq_ez_bg").children('img').width(); var ih = $("#jq_ez_bg").children('img').height(); if ($(window).width() > $(window).height()) { //console.log(iw, ih); if (iw > ih) { var fRatio = iw/ih; $("#jq_ez_bg").children('img').css("width",$(window).width() + "px"); $("#jq_ez_bg").children('img').css("height",Math.round($(window).width() * (1/fRatio))); var newIh = Math.round($(window).width() * (1/fRatio)); if(newIh < $(window).height()) { var fRatio = ih/iw; $("#jq_ez_bg").children('img').css("height",$(window).height()); $("#jq_ez_bg").children('img').css("width",Math.round($(window).height() * (1/fRatio))); } } else { var fRatio = ih/iw; $("#jq_ez_bg").children('img').css("height",$(window).height()); $("#jq_ez_bg").children('img').css("width",Math.round($(window).height() * (1/fRatio))); } } else { var fRatio = ih/iw; $("#jq_ez_bg").children('img').css("height",$(window).height()); $("#jq_ez_bg").children('img').css("width",Math.round($(window).height() * (1/fRatio))); } // Center the image if (typeof(jqez.center) == 'undefined' || jqez.center) { if ($("#jq_ez_bg").children('img').width() > $(window).width()) { var this_left = ($("#jq_ez_bg").children('img').width() - $(window).width()) / 2; $("#jq_ez_bg").children('img').css({ "top" : 0, "left" : -this_left }); } if ($("#jq_ez_bg").children('img').height() > $(window).height()) { var this_height = ($("#jq_ez_bg").children('img').height() - $(window).height()) / 2; $("#jq_ez_bg").children('img').css({ "left" : 0, "top" : -this_height }); } } $("#jq_ez_bg").fadeIn(0); // Allow scrolling again $("body").css({ "overflow":"auto" }); } })(jQuery);