// Console (function(){ if (!window.console) { window.console = {}; window.console.log = window.console.clear = window.console.error = window.console.table = function() {}; } })(); // Event Bridge (function($, window, undefined) { if ($ === undefined) return; var _window = window, $window = $(_window), event = { 'set' : { 'str' : 'eventSet', resizeTime : function(value) { if (value === undefined) return; event.resize.time = value; return this; } }, 'bridge' : { 'str' : 'eventBridge', '$el' : $('
') }, 'dictionary' : { 'str' : 'eventDictionary', 'temp' : 'tempEvent', 'global' : { 'LOAD' : 'load', 'RESIZE' : 'resize', 'RESIZE_STOP' : 'resize_stop', 'SCROLL' : 'scroll' } }, 'resize' : { 'timerID' : '', 'time' : 150 } }; var eventBridgeStr = event.bridge.str, eventDictionaryStr = event.dictionary.str, eventSetStr = event.set.str, eventResizeTimerID = event.resize.timerID; if (!$[eventBridgeStr]) $[eventBridgeStr] = event.bridge.$el; if (!$[eventDictionaryStr]) $[eventDictionaryStr] = event.dictionary; if (!$[eventSetStr]) $[eventSetStr] = event.set; $window.on({ 'load' : function() { $.eventBridge.trigger($.Event($.eventDictionary.global.LOAD)); }, 'resize' : function() { $.eventBridge.trigger($.Event($.eventDictionary.global.RESIZE)); clearTimeout(eventResizeTimerID); eventResizeTimerID = setTimeout(function() { $.eventBridge.trigger($.Event($.eventDictionary.global.RESIZE_STOP)); }, event.resize.time); }, 'scroll' : function() { $.eventBridge.trigger($.Event($.eventDictionary.global.SCROLL)); } }); })(jQuery, window); // Image Fill Plugin (function($, window, undefined) { var errorMessage = 'error -_-^?'; function fill(target, outerTarget, sizeOption) { var targetWidth = sizeOption.width || target.width(), targetHeight = sizeOption.height || target.height(), outerWidth = outerTarget.width(), outerHeight = outerTarget.height(); var rate, newWidth, newHeight; rate = (targetWidth > targetHeight) ? outerHeight / targetHeight : outerWidth / targetWidth; rate = (outerHeight > Math.round(targetHeight * rate)) ? outerHeight / targetHeight : (outerWidth > targetWidth * rate) ? outerWidth / targetWidth : rate; newWidth = Math.max(outerWidth, Math.round(targetWidth * rate)); newHeight = Math.max(outerHeight, Math.round(targetHeight * rate)); target.css({ width: newWidth, height: newHeight, marginLeft: (outerWidth - newWidth) / 2, marginTop: (outerHeight - newHeight) / 2 }); } function fillImgLoad(opt) { if (opt == undefined) return; var oTarget = opt.target, oParent = opt.parent, oImgDataSrc = opt.imgDataSrc = oTarget.data('img-src'), oIsImg = opt.isImg = isImage(oTarget), oIsImgData = opt.isImgData = (oImgDataSrc != undefined && oImgDataSrc != '') ? oImgDataSrc : undefined, oImgSrc = opt.imgSrc = (oIsImg == true) ? oTarget.attr('src') : oImgDataSrc, width = opt.width, height = opt.height; var oImg = new Image(); oImg.onload = function() { if (oIsImg == false && oIsImgData != undefined) { oTarget.css({ backgroundImage : 'url("'+oImgSrc+'")', backgroundRepeat : 'no-repeat', backgroundPosition : '0 0', backgroundSize : '100% 100%' }); } fillEventHandler(oTarget, oParent, { width : width || oImg.width, height : height || oImg.height }); }; oImg.onerror = function(e) { console.log(e); }; oImg.src = oImgSrc; } function fillEventHandler($self, $outer, sizeOption) { fill($self, $outer, sizeOption); $.eventBridge.on($.eventDictionary.global.RESIZE, function(e) { fill($self, $outer, sizeOption); }); $.eventBridge.on($.eventDictionary.global.RESIZE_STOP, function(e) { fill($self, $outer, sizeOption); }); } function fillEventHandlerStop() { $.eventBridge.off($.eventDictionary.global.RESIZE); $.eventBridge.off($.eventDictionary.global.RESIZE_STOP); } function isImage($img) { return ($img[0].nodeName.toLowerCase() == 'img'); } $.fn.fill = function(options) { if (this.length == 0) return; var opt = options || {}; $.each(this, function() { var $target = $(this), $outer = $target.parent(); fillImgLoad({ target : $target, parent : $outer }); }); }; $.oneFill = function(options) { if(options == undefined) return; var opt = options || {}; fillImgLoad({ target : opt.target || $('#'+opt.targetID), parent : (opt.outer != undefined) ? opt.outer : ((opt.outerID != undefined) ? $('#'+opt.outerID) : opt.target.parent()), width : opt.width, height : opt.height }); }; $.oneFillStop = function() { fillEventHandlerStop(); } })(jQuery);