%PDF- %PDF-
Direktori : /var/www/projetos/romanian.ongrace.com/wp-content/plugins/gallery-videos/JS/ |
Current File : /var/www/projetos/romanian.ongrace.com/wp-content/plugins/gallery-videos/JS/jquery.adipoli.js |
/* * Adipoli jQuery Image Hover Plugin * http://jobyj.in/adipoli * * Copyright 2012, Joby Joseph * Free to use under the MIT license. * http://www.opensource.org/licenses/mit-license.php * */ (function($) { $.fn.adipoli = function(options) { // Create some defaults, extending them with any options that were provided // hovereffect: normal,sliceDown,sliceDownLeft,sliceUp,sliceUpLeft var settings = $.extend( { 'startEffect' : 'transparent', 'hoverEffect' : 'normal', 'imageOpacity' : 0.5, 'animSpeed' : 500, 'fillColor' : '#000', 'textColor' : '#ffffff', 'overlayText' : 'Hello', 'slices' : 25, 'boxCols' : 10, 'boxRows' : 5, 'popOutMargin' : 10, 'popOutShadow' : 20, 'popOutShadowC' : '#ff0000' }, options); //wrap it with div //$(this).one('load',function(){ $(this).one('load', function() { // do stuff $(this).wrap(function(){ return '<div class="adipoli-wrapper '+$(this).attr('class')+'" style="width:'+$(this).width()+'px; height:'+$(this).height()+'px;"/>'; }); $(this).parent().append('<div class="adipoli-before '+$(this).attr('class')+'" style="display:none;width:'+$(this).width()+'px; height:'+$(this).height()+'px;"><img src="'+$(this).attr('src')+'" style="width:100% !important; height:100% !important; margin: 0 !important;"/></div>'); // $(this).parent().append('<div class="adipoli-before '+$(this).attr('class')+'" style="display:none;width:'+$(this).width()+'px; height:'+$(this).height()+'px;"><img src="'+$(this).attr('src')+'" style="width:'+$(this).width()+'px; height:'+$(this).height()+'px;"/></div>'); $(this).parent().append('<div class="adipoli-after '+$(this).attr('class')+'" style="display:none;width:'+$(this).width()+'px; height:'+$(this).height()+'px;"></div>'); //set start effect if(settings.startEffect=="transparent") { $(this).hide(); $(this).siblings('.adipoli-before').css({ '-ms-filter': '"progid:DXImageTransform.Microsoft.Alpha(Opacity='+settings.imageOpacity*100+')"', 'filter': 'alpha(opacity='+settings.imageOpacity*100+')', '-moz-opacity': settings.imageOpacity, '-khtml-opacity': settings.imageOpacity, 'opacity': settings.imageOpacity }).show(); } else if(settings.startEffect=="grayscale") { var element=$(this); element.hide(); element.siblings('.adipoli-before').show(); element.siblings('.adipoli-before').children('img').each(function(){ this.src = grayscale(this.src); }); } else if(settings.startEffect=="normal") { $(this).hide(); $(this).siblings('.adipoli-before').show(); } else if(settings.startEffect=="overlay") { element=$(this); element.hide(); $(this).siblings('.adipoli-before').html('<p>'+settings.overlayText+'</p>').css({ '-ms-filter': '"progid:DXImageTransform.Microsoft.Alpha(Opacity='+settings.imageOpacity*100+')"', 'filter': 'alpha(opacity='+settings.imageOpacity*100+')', '-moz-opacity': settings.imageOpacity, '-khtml-opacity': settings.imageOpacity, 'opacity': settings.imageOpacity, 'background':settings.fillColor, 'color':settings.textColor }).fadeIn(); element.show(); } //binding events for mouseover $(this).parent().bind('mouseenter',function(){ if(settings.hoverEffect=='normal') { var element=$(this); element.children('.adipoli-after').html('<img src="'+element.children('img').attr('src')+'" style="width:100%;height:100%;"/>').fadeIn(settings.animSpeed); } else if(settings.hoverEffect=='popout') { element=$(this); var curImageWidth=element.children('img').width(); var curImageHeight=element.children('img').height(); element.children('.adipoli-after').html('<img src="'+element.children('img').attr('src')+'"/>'); var popOutImage=element.children('.adipoli-after').children('img'); popOutImage.width(curImageWidth+2*settings.popOutMargin); popOutImage.height(curImageHeight+2*settings.popOutMargin); element.children('.adipoli-after').width(curImageWidth+2*settings.popOutMargin); element.children('.adipoli-after').height(curImageHeight+2*settings.popOutMargin); element.children('.adipoli-after').css({ 'left':'-'+settings.popOutMargin+'px', 'top':'-'+settings.popOutMargin+'px', 'box-shadow':'0px 0px '+settings.popOutShadow+'px '+settings.popOutShadowC }).show(); } else if(settings.hoverEffect=='sliceDown' || settings.hoverEffect=='sliceDownLeft'|| settings.hoverEffect=='sliceUp' || settings.hoverEffect=='sliceUpLeft' || settings.hoverEffect=='sliceUpRandom' || settings.hoverEffect=='sliceDownRandom') { $(this).children('.adipoli-after').show(); createSlices($(this),settings); var timeBuff = 0; var i = 0; var slices = $('.adipoli-slice', $(this)); if(settings.hoverEffect == 'sliceDownLeft' || settings.hoverEffect=='sliceUpLeft') slices = $('.adipoli-slice', $(this))._reverse(); if(settings.hoverEffect=='sliceUpRandom' || settings.hoverEffect=='sliceDownRandom') slices = shuffle($('.adipoli-slice', $(this))); slices.each(function(){ var slice = $(this); if(settings.hoverEffect=='sliceDown' || settings.hoverEffect=='sliceDownLeft'){ slice.css({ 'top': '0px', }); } else if(settings.hoverEffect=='sliceUp' || settings.hoverEffect=='sliceUpLeft') { slice.css({ 'bottom': '0px' }); } if(i == settings.slices-1){ setTimeout(function(){ slice.animate({ height:'100%', opacity:'1.0' }, settings.animSpeed, '', function(){ //event to fire when animation finish }); }, (100 + timeBuff)); } else { setTimeout(function(){ slice.animate({ height:'100%', opacity:'1.0' }, settings.animSpeed); }, (100 + timeBuff)); } timeBuff += 50; i++; }); } else if(settings.hoverEffect == 'sliceUpDown' || settings.hoverEffect == 'sliceUpDownLeft'){ $(this).children('.adipoli-after').show(); createSlices($(this),settings); timeBuff = 0; i = 0; var v = 0; slices = $('.adipoli-slice', $(this)); if(settings.hoverEffect == 'sliceUpDownLeft') slices = $('.adipoli-slice', $(this))._reverse(); slices.each(function(){ var slice = $(this); if(i == 0){ slice.css('top','0px'); i++; } else { slice.css('bottom','0px'); i = 0; } if(v == settings.slices-1){ setTimeout(function(){ slice.animate({ height:'100%', opacity:'1.0' }, settings.animSpeed, '', function(){ //event when animation finish }); }, (100 + timeBuff)); } else { setTimeout(function(){ slice.animate({ height:'100%', opacity:'1.0' }, settings.animSpeed); }, (100 + timeBuff)); } timeBuff += 50; v++; }); } else if(settings.hoverEffect == 'fold' || settings.hoverEffect == 'foldLeft'){ $(this).children('.adipoli-after').show(); element=$(this); createSlices(element,settings); timeBuff = 0; i = 0; slices=$('.adipoli-slice', element); if(settings.hoverEffect == 'foldLeft') slices = $('.adipoli-slice', $(this))._reverse(); slices.each(function(){ var slice = $(this); var origWidth = slice.width(); slice.css({ top:'0px', height:'100%', width:'0px' }); if(i == settings.slices-1){ setTimeout(function(){ slice.animate({ width:origWidth, opacity:'1.0' }, settings.animSpeed, '', function(){ //trigger when animation finish }); }, (100 + timeBuff)); } else { setTimeout(function(){ slice.animate({ width:origWidth, opacity:'1.0' }, settings.animSpeed); }, (100 + timeBuff)); } timeBuff += 50; i++; }); } else if(settings.hoverEffect == 'boxRandom'){ $(this).children('.adipoli-after').show(); element=$(this); createBoxes(element, settings); var totalBoxes = settings.boxCols * settings.boxRows; i = 0; timeBuff = 0; var boxes = shuffle($('.adipoli-box', element)); boxes.each(function(){ var box = $(this); if(i == totalBoxes-1){ setTimeout(function(){ box.animate({ opacity:'1' }, settings.animSpeed, '', function(){}); }, (100 + timeBuff)); } else { setTimeout(function(){ box.animate({ opacity:'1' }, settings.animSpeed); }, (100 + timeBuff)); } timeBuff += 20; i++; }); } else if(settings.hoverEffect == 'boxRain' || settings.hoverEffect == 'boxRainReverse' || settings.hoverEffect == 'boxRainGrow' || settings.hoverEffect == 'boxRainGrowReverse'){ $(this).children('.adipoli-after').show(); element=$(this); createBoxes(element, settings); totalBoxes = settings.boxCols * settings.boxRows; i = 0; timeBuff = 0; // Split boxes into 2D array var rowIndex = 0; var colIndex = 0; var box2Darr = new Array(); box2Darr[rowIndex] = new Array(); boxes = $('.adipoli-box', element); if(settings.hoverEffect == 'boxRainReverse' || settings.hoverEffect == 'boxRainGrowReverse'){ boxes = $('.adipoli-box', element)._reverse(); } boxes.each(function(){ box2Darr[rowIndex][colIndex] = $(this); colIndex++; if(colIndex == settings.boxCols){ rowIndex++; colIndex = 0; box2Darr[rowIndex] = new Array(); } }); // Run animation for(var cols = 0; cols < (settings.boxCols * 2); cols++){ var prevCol = cols; for(var rows = 0; rows < settings.boxRows; rows++){ if(prevCol >= 0 && prevCol < settings.boxCols){ (function(row, col, time, i, totalBoxes) { var box = $(box2Darr[row][col]); var w = box.width(); var h = box.height(); if(settings.hoverEffect == 'boxRainGrow' || settings.hoverEffect == 'boxRainGrowReverse'){ box.width(0).height(0); } if(i == totalBoxes-1){ setTimeout(function(){ box.animate({ opacity:'1', width:w, height:h }, settings.animSpeed/1.3, '', function(){ //animation complete event }); }, (100 + time)); } else { setTimeout(function(){ box.animate({ opacity:'1', width:w, height:h }, settings.animSpeed/1.3); }, (100 + time)); } })(rows, prevCol, timeBuff, i, totalBoxes); i++; } prevCol--; } timeBuff += 100; } } }); //binding events for mouseleave $(this).parent().bind('mouseleave',function(){ $(this).children('.adipoli-after').html('').hide(); }); }).each(function() { if(this.complete) $(this).load(); }); //}); return $(this); // Add slices for slice animations function createSlices(element, settings){ var imWidth=jQuery('.totalsoft_gv_tv_row').width(); for(var i = 0; i < settings.slices; i++){ var sliceWidth = Math.round(element.width()/settings.slices); if(i == settings.slices-1){ element.children('.adipoli-after').append( $('<div class="adipoli-slice"></div>').css({ left:(sliceWidth*i)+'px', width:(element.width()-(sliceWidth*i))+'px', height:'0px', opacity:'0', background: 'url("'+ element.children('img').attr('src') +'") no-repeat -'+ ((sliceWidth + (i * sliceWidth)) - sliceWidth) +'px 0%', backgroundSize:''+jQuery(element[0]).width()+'px 100%' }) ); } else { element.children('.adipoli-after').append( $('<div class="adipoli-slice"></div>').css({ left:(sliceWidth*i)+'px', width:sliceWidth+'px', height:'0px', opacity:'0', background: 'url("'+ element.children('img').attr('src') +'") no-repeat -'+ ((sliceWidth + (i * sliceWidth)) - sliceWidth) +'px 0%', backgroundSize:''+jQuery(element[0]).width()+'px 100%' }) ); } } } // Add boxes for box animations /*---poxel----*/ function createBoxes(element, settings){ var imWidth=jQuery('.totalsoft_gv_tv_row').width(); var imHeight=jQuery('.totalsoft_gv_tv_row').height(); var boxWidth = Math.round(element.width()/settings.boxCols); var boxHeight = Math.round(element.height()/settings.boxRows); if(jQuery(element).parent().parent().parent().attr('class') == 'widget widget_total_soft_gallery_video'){ jQuery(element).parent().parent().parent().each(function(index, el){ imWidth=jQuery(el).find('.totalsoft_gv_tv_row').width(); imHeight=jQuery(el).find('.totalsoft_gv_tv_row').height(); }); } for(var rows = 0; rows < settings.boxRows; rows++){ for(var cols = 0; cols < settings.boxCols; cols++){ if(cols == settings.boxCols-1){ element.children('.adipoli-after').append( $('<div class="adipoli-box"></div>').css({ opacity:0, left:(boxWidth*cols)+'px', top:(boxHeight*rows)+'px', width:(element.width()-(boxWidth*cols))+'px', height:boxHeight+'px', background: 'url("'+element.children('img').attr('src') +'") no-repeat -'+ ((boxWidth + (cols * boxWidth)) - boxWidth) +'px -'+ ((boxHeight + (rows * boxHeight)) - boxHeight) +'px', backgroundSize:''+imWidth+'px '+imHeight+'px' }) ); } else { element.children('.adipoli-after').append( $('<div class="adipoli-box"></div>').css({ opacity:0, left:(boxWidth*cols)+'px', top:(boxHeight*rows)+'px', width:boxWidth+'px', height:boxHeight+'px', background: 'url("'+ element.children('img').attr('src') +'") no-repeat -'+ ((boxWidth + (cols * boxWidth)) - boxWidth) +'px -'+ ((boxHeight + (rows * boxHeight)) - boxHeight) +'px', backgroundSize:''+imWidth+'px '+imHeight+'px' }) ); } } } } // Shuffle an array function shuffle(arr){ for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x); return arr; } // Grayscale w canvas method function grayscale(src){ var canvas = document.createElement('canvas'); var ctx = canvas.getContext('2d'); var imgObj = new Image(); imgObj.src = src; canvas.width = imgObj.width; canvas.height = imgObj.height; ctx.drawImage(imgObj, 0, 0); var imgPixels = ctx.getImageData(0, 0, canvas.width, canvas.height); for(var y = 0; y < imgPixels.height; y++){ for(var x = 0; x < imgPixels.width; x++){ var i = (y * 4) * imgPixels.width + x * 4; var avg = (imgPixels.data[i] + imgPixels.data[i + 1] + imgPixels.data[i + 2]) / 3; imgPixels.data[i] = avg; imgPixels.data[i + 1] = avg; imgPixels.data[i + 2] = avg; } } ctx.putImageData(imgPixels, 0, 0, 0, 0, imgPixels.width, imgPixels.height); return canvas.toDataURL(); } }; $.fn._reverse = [].reverse; })(jQuery);