init commit
This commit is contained in:
@@ -0,0 +1,298 @@
|
||||
/********************************************
|
||||
* REVOLUTION 5.0 EXTENSION - ACTIONS
|
||||
* @version: 1.1 (25.11.2015)
|
||||
* @requires jquery.themepunch.revolution.js
|
||||
* @author ThemePunch
|
||||
*********************************************/
|
||||
|
||||
(function($) {
|
||||
|
||||
var _R = jQuery.fn.revolution,
|
||||
_ISM = _R.is_mobile();
|
||||
|
||||
///////////////////////////////////////////
|
||||
// EXTENDED FUNCTIONS AVAILABLE GLOBAL //
|
||||
///////////////////////////////////////////
|
||||
jQuery.extend(true,_R, {
|
||||
checkActions : function(_nc,opt,as) {
|
||||
checkActions_intern(_nc,opt,as);
|
||||
}
|
||||
});
|
||||
|
||||
//////////////////////////////////////////
|
||||
// - INITIALISATION OF ACTIONS - //
|
||||
//////////////////////////////////////////
|
||||
var checkActions_intern = function(_nc,opt,as) {
|
||||
if (as)
|
||||
jQuery.each(as,function(i,a) {
|
||||
a.delay = parseInt(a.delay,0)/1000;
|
||||
_nc.addClass("noSwipe");
|
||||
|
||||
// LISTEN TO ESC TO EXIT FROM FULLSCREEN
|
||||
if (!opt.fullscreen_esclistener) {
|
||||
if (a.action=="exitfullscreen" || a.action=="togglefullscreen") {
|
||||
jQuery(document).keyup(function(e) {
|
||||
if (e.keyCode == 27 && jQuery('#rs-go-fullscreen').length>0)
|
||||
_nc.trigger(a.event);
|
||||
});
|
||||
opt.fullscreen_esclistener = true;
|
||||
}
|
||||
}
|
||||
|
||||
var tnc = a.layer == "backgroundvideo" ? jQuery(".rs-background-video-layer") : a.layer == "firstvideo" ? jQuery(".tp-revslider-slidesli").find('.tp-videolayer') : jQuery("#"+a.layer);
|
||||
// COLLECT ALL TOGGLE TRIGGER TO CONNECT THEM WITH TRIGGERED LAYER
|
||||
switch (a.action) {
|
||||
case "togglevideo":
|
||||
jQuery.each(tnc,function(i,_tnc) {
|
||||
_tnc = jQuery(_tnc);
|
||||
var videotoggledby = _tnc.data('videotoggledby');
|
||||
if (videotoggledby == undefined)
|
||||
videotoggledby = new Array();
|
||||
videotoggledby.push(_nc);
|
||||
_tnc.data('videotoggledby',videotoggledby)
|
||||
});
|
||||
break;
|
||||
case "togglelayer":
|
||||
jQuery.each(tnc,function(i,_tnc) {
|
||||
_tnc = jQuery(_tnc);
|
||||
var layertoggledby = _tnc.data('layertoggledby');
|
||||
if (layertoggledby == undefined)
|
||||
layertoggledby = new Array();
|
||||
layertoggledby.push(_nc);
|
||||
_tnc.data('layertoggledby',layertoggledby)
|
||||
});
|
||||
break;
|
||||
case "toggle_mute_video":
|
||||
jQuery.each(tnc,function(i,_tnc) {
|
||||
_tnc = jQuery(_tnc);
|
||||
var videomutetoggledby = _tnc.data('videomutetoggledby');
|
||||
if (videomutetoggledby == undefined)
|
||||
videomutetoggledby = new Array();
|
||||
videomutetoggledby.push(_nc);
|
||||
_tnc.data('videomutetoggledby',videomutetoggledby);
|
||||
});
|
||||
break;
|
||||
case "toggleslider":
|
||||
if (opt.slidertoggledby == undefined) opt.slidertoggledby = new Array();
|
||||
opt.slidertoggledby.push(_nc);
|
||||
break;
|
||||
case "togglefullscreen":
|
||||
if (opt.fullscreentoggledby == undefined) opt.fullscreentoggledby = new Array();
|
||||
opt.fullscreentoggledby.push(_nc);
|
||||
break;
|
||||
}
|
||||
|
||||
_nc.on(a.event,function() {
|
||||
var tnc = a.layer == "backgroundvideo" ? jQuery(".active-revslide .slotholder .rs-background-video-layer") : a.layer == "firstvideo" ? jQuery(".active-revslide .tp-videolayer").first() : jQuery("#"+a.layer);
|
||||
|
||||
if (a.action=="stoplayer" || a.action=="togglelayer" || a.action=="startlayer") {
|
||||
if (tnc.length>0)
|
||||
if (a.action=="startlayer" || (a.action=="togglelayer" && tnc.data('animdirection')!="in")) {
|
||||
tnc.data('animdirection',"in");
|
||||
var otl = tnc.data('timeline_out'),
|
||||
base_offsetx = opt.sliderType==="carousel" ? 0 : opt.width/2 - (opt.gridwidth[opt.curWinRange]*opt.bw)/2,
|
||||
base_offsety=0;
|
||||
if (otl!=undefined) otl.pause(0).kill();
|
||||
if (_R.animateSingleCaption) _R.animateSingleCaption(tnc,opt,base_offsetx,base_offsety,0,false,true);
|
||||
var tl = tnc.data('timeline');
|
||||
tnc.data('triggerstate',"on");
|
||||
_R.toggleState(tnc.data('layertoggledby'));
|
||||
punchgs.TweenLite.delayedCall(a.delay,function() {
|
||||
tl.play(0);
|
||||
},[tl]);
|
||||
} else
|
||||
|
||||
if (a.action=="stoplayer" || (a.action=="togglelayer" && tnc.data('animdirection')!="out")) {
|
||||
tnc.data('animdirection',"out");
|
||||
tnc.data('triggered',true);
|
||||
tnc.data('triggerstate',"off");
|
||||
if (_R.stopVideo) _R.stopVideo(tnc,opt);
|
||||
if (_R.endMoveCaption)
|
||||
punchgs.TweenLite.delayedCall(a.delay,_R.endMoveCaption,[tnc,null,null,opt]);
|
||||
_R.unToggleState(tnc.data('layertoggledby'))
|
||||
}
|
||||
} else {
|
||||
if (_ISM && (a.action=='playvideo' || a.action=='stopvideo' || a.action=='togglevideo' || a.action=='mutevideo' || a.action=='unmutevideo' || a.action=='toggle_mute_video')) {
|
||||
actionSwitches(tnc,opt,a,_nc);
|
||||
} else {
|
||||
punchgs.TweenLite.delayedCall(a.delay,function() {
|
||||
actionSwitches(tnc,opt,a,_nc);
|
||||
},[tnc,opt,a,_nc]);
|
||||
}
|
||||
}
|
||||
});
|
||||
switch (a.action) {
|
||||
case "togglelayer":
|
||||
case "startlayer":
|
||||
case "playlayer":
|
||||
case "stoplayer":
|
||||
var tnc = jQuery("#"+a.layer);
|
||||
if (tnc.data('start')!="bytrigger") {
|
||||
tnc.data('triggerstate',"on");
|
||||
tnc.data('animdirection',"in");
|
||||
}
|
||||
break;
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
var actionSwitches = function(tnc,opt,a,_nc) {
|
||||
switch (a.action) {
|
||||
case "scrollbelow":
|
||||
|
||||
_nc.addClass("tp-scrollbelowslider");
|
||||
_nc.data('scrolloffset',a.offset);
|
||||
_nc.data('scrolldelay',a.delay);
|
||||
var off=getOffContH(opt.fullScreenOffsetContainer) || 0,
|
||||
aof = parseInt(a.offset,0) || 0;
|
||||
off = off - aof || 0;
|
||||
jQuery('body,html').animate({scrollTop:(opt.c.offset().top+(jQuery(opt.li[0]).height())-off)+"px"},{duration:400});
|
||||
break;
|
||||
case "callback":
|
||||
eval(a.callback);
|
||||
break;
|
||||
case "jumptoslide":
|
||||
switch (a.slide.toLowerCase()) {
|
||||
case "+1":
|
||||
case "next":
|
||||
opt.sc_indicator="arrow";
|
||||
_R.callingNewSlide(opt,opt.c,1);
|
||||
break;
|
||||
case "previous":
|
||||
case "prev":
|
||||
case "-1":
|
||||
opt.sc_indicator="arrow";
|
||||
_R.callingNewSlide(opt,opt.c,-1);
|
||||
break;
|
||||
default:
|
||||
var ts = jQuery.isNumeric(a.slide) ? parseInt(a.slide,0) : a.slide;
|
||||
_R.callingNewSlide(opt,opt.c,ts);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case "simplelink":
|
||||
window.open(a.url,a.target);
|
||||
break;
|
||||
case "toggleslider":
|
||||
opt.noloopanymore=0;
|
||||
if (opt.sliderstatus=="playing") {
|
||||
opt.c.revpause();
|
||||
_R.unToggleState(opt.slidertoggledby);
|
||||
}
|
||||
else {
|
||||
opt.c.revresume();
|
||||
_R.toggleState(opt.slidertoggledby);
|
||||
}
|
||||
break;
|
||||
case "pauseslider":
|
||||
opt.c.revpause();
|
||||
_R.unToggleState(opt.slidertoggledby);
|
||||
break;
|
||||
case "playslider":
|
||||
opt.noloopanymore=0;
|
||||
opt.c.revresume();
|
||||
_R.toggleState(opt.slidertoggledby);
|
||||
break;
|
||||
case "playvideo":
|
||||
|
||||
if (tnc.length>0)
|
||||
_R.playVideo(tnc,opt);
|
||||
break;
|
||||
case "stopvideo":
|
||||
if (tnc.length>0)
|
||||
if (_R.stopVideo) _R.stopVideo(tnc,opt);
|
||||
break;
|
||||
case "togglevideo":
|
||||
if (tnc.length>0)
|
||||
if (!_R.isVideoPlaying(tnc,opt))
|
||||
_R.playVideo(tnc,opt);
|
||||
else
|
||||
if (_R.stopVideo) _R.stopVideo(tnc,opt);
|
||||
break;
|
||||
case "mutevideo":
|
||||
if (tnc.length>0)
|
||||
_R.muteVideo(tnc,opt);
|
||||
break;
|
||||
case "unmutevideo":
|
||||
if (tnc.length>0)
|
||||
if (_R.unMuteVideo) _R.unMuteVideo(tnc,opt);
|
||||
break;
|
||||
case "toggle_mute_video":
|
||||
if (tnc.length>0)
|
||||
if (_R.isVideoMuted(tnc,opt))
|
||||
_R.unMuteVideo(tnc,opt);
|
||||
else
|
||||
if (_R.muteVideo) _R.muteVideo(tnc,opt);
|
||||
_nc.toggleClass('rs-toggle-content-active');
|
||||
break;
|
||||
case "simulateclick":
|
||||
if (tnc.length>0) tnc.click();
|
||||
break;
|
||||
case "toggleclass":
|
||||
if (tnc.length>0)
|
||||
if (!tnc.hasClass(a.classname))
|
||||
tnc.addClass(a.classname);
|
||||
else
|
||||
tnc.removeClass(a.classname);
|
||||
break;
|
||||
case "gofullscreen":
|
||||
case "exitfullscreen":
|
||||
case "togglefullscreen":
|
||||
|
||||
if (jQuery('#rs-go-fullscreen').length>0 && (a.action=="togglefullscreen" || a.action=="exitfullscreen")) {
|
||||
jQuery('#rs-go-fullscreen').appendTo(jQuery('#rs-was-here'));
|
||||
var paw = opt.c.closest('.forcefullwidth_wrapper_tp_banner').length>0 ? opt.c.closest('.forcefullwidth_wrapper_tp_banner') : opt.c.closest('.rev_slider_wrapper');
|
||||
paw.unwrap();
|
||||
paw.unwrap();
|
||||
opt.minHeight = opt.oldminheight;
|
||||
opt.infullscreenmode = false;
|
||||
opt.c.revredraw();
|
||||
if (opt.playingvideos != undefined && opt.playingvideos.length>0) {
|
||||
jQuery.each(opt.playingvideos,function(i,_nc) {
|
||||
_R.playVideo(_nc,opt);
|
||||
});
|
||||
}
|
||||
_R.unToggleState(opt.fullscreentoggledby);
|
||||
|
||||
} else
|
||||
if (jQuery('#rs-go-fullscreen').length==0 && (a.action=="togglefullscreen" || a.action=="gofullscreen")) {
|
||||
var paw = opt.c.closest('.forcefullwidth_wrapper_tp_banner').length>0 ? opt.c.closest('.forcefullwidth_wrapper_tp_banner') : opt.c.closest('.rev_slider_wrapper');
|
||||
paw.wrap('<div id="rs-was-here"><div id="rs-go-fullscreen"></div></div>');
|
||||
var gf = jQuery('#rs-go-fullscreen');
|
||||
gf.appendTo(jQuery('body'));
|
||||
gf.css({position:'fixed',width:'100%',height:'100%',top:'0px',left:'0px',zIndex:'9999999',background:'#ffffff'});
|
||||
opt.oldminheight = opt.minHeight;
|
||||
opt.minHeight = jQuery(window).height();
|
||||
opt.infullscreenmode = true;
|
||||
opt.c.revredraw();
|
||||
if (opt.playingvideos != undefined && opt.playingvideos.length>0) {
|
||||
jQuery.each(opt.playingvideos,function(i,_nc) {
|
||||
_R.playVideo(_nc,opt);
|
||||
});
|
||||
}
|
||||
_R.toggleState(opt.fullscreentoggledby);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
var getOffContH = function(c) {
|
||||
if (c==undefined) return 0;
|
||||
if (c.split(',').length>1) {
|
||||
oc = c.split(",");
|
||||
var a =0;
|
||||
if (oc)
|
||||
jQuery.each(oc,function(index,sc) {
|
||||
if (jQuery(sc).length>0)
|
||||
a = a + jQuery(sc).outerHeight(true);
|
||||
});
|
||||
return a;
|
||||
} else {
|
||||
return jQuery(c).height();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,346 @@
|
||||
/********************************************
|
||||
* REVOLUTION 5.0 EXTENSION - CAROUSEL
|
||||
* @version: 1.0.2 (01.10.2015)
|
||||
* @requires jquery.themepunch.revolution.js
|
||||
* @author ThemePunch
|
||||
*********************************************/
|
||||
(function($) {
|
||||
|
||||
var _R = jQuery.fn.revolution;
|
||||
|
||||
///////////////////////////////////////////
|
||||
// EXTENDED FUNCTIONS AVAILABLE GLOBAL //
|
||||
///////////////////////////////////////////
|
||||
jQuery.extend(true,_R, {
|
||||
|
||||
// CALCULATE CAROUSEL POSITIONS
|
||||
prepareCarousel : function(opt,a,direction) {
|
||||
|
||||
direction = opt.carousel.lastdirection = dircheck(direction,opt.carousel.lastdirection);
|
||||
setCarouselDefaults(opt);
|
||||
|
||||
opt.carousel.slide_offset_target = getActiveCarouselOffset(opt);
|
||||
|
||||
if (a==undefined)
|
||||
_R.carouselToEvalPosition(opt,direction);
|
||||
else
|
||||
animateCarousel(opt,direction,false);
|
||||
|
||||
},
|
||||
|
||||
// MOVE FORWARDS/BACKWARDS DEPENDING ON THE OFFSET TO GET CAROUSEL IN EVAL POSITION AGAIN
|
||||
carouselToEvalPosition : function(opt,direction) {
|
||||
|
||||
var _ = opt.carousel;
|
||||
direction = _.lastdirection = dircheck(direction,_.lastdirection);
|
||||
|
||||
var bb = _.horizontal_align==="center" ? ((_.wrapwidth/2-_.slide_width/2) - _.slide_globaloffset) / _.slide_width : (0 - _.slide_globaloffset) / _.slide_width,
|
||||
fi = _R.simp(bb,opt.slideamount,false);
|
||||
|
||||
var cm = fi - Math.floor(fi),
|
||||
calc = 0,
|
||||
mc = -1 * (Math.ceil(fi) - fi),
|
||||
mf = -1 * (Math.floor(fi) - fi);
|
||||
|
||||
calc = cm>=0.3 && direction==="left" || cm>=0.7 && direction==="right" ? mc : cm<0.3 && direction==="left" || cm<0.7 && direction==="right" ? mf : calc;
|
||||
calc = _.infinity==="off" ? fi<0 ? fi : bb>opt.slideamount-1 ? bb-(opt.slideamount-1) : calc : calc;
|
||||
|
||||
_.slide_offset_target = calc * _.slide_width;
|
||||
// LONGER "SMASH" +/- 1 to Calc
|
||||
|
||||
if (Math.abs(_.slide_offset_target) !==0)
|
||||
animateCarousel(opt,direction,true);
|
||||
else {
|
||||
_R.organiseCarousel(opt,direction);
|
||||
}
|
||||
},
|
||||
|
||||
// ORGANISE THE CAROUSEL ELEMENTS IN POSITION AND TRANSFORMS
|
||||
organiseCarousel : function(opt,direction,setmaind,unli) {
|
||||
|
||||
direction = direction === undefined || direction=="down" || direction=="up" || direction===null || jQuery.isEmptyObject(direction) ? "left" : direction;
|
||||
var _ = opt.carousel,
|
||||
slidepositions = new Array(),
|
||||
len = _.slides.length,
|
||||
leftlimit = _.horizontal_align ==="right" ? leftlimit = opt.width : 0;
|
||||
|
||||
|
||||
for (var i=0;i<len;i++) {
|
||||
var pos = (i * _.slide_width) + _.slide_offset;
|
||||
if (_.infinity==="on") {
|
||||
pos = pos>_.wrapwidth-_.inneroffset && direction=="right" ? _.slide_offset - ((_.slides.length-i)*_.slide_width) : pos;
|
||||
pos = pos<0-_.inneroffset-_.slide_width && direction=="left" ? pos + _.maxwidth : pos;
|
||||
}
|
||||
slidepositions[i] = pos;
|
||||
}
|
||||
var maxd = 999;
|
||||
|
||||
// SECOND RUN FOR NEGATIVE ADJUSTMENETS
|
||||
if (_.slides)
|
||||
jQuery.each(_.slides,function(i,slide) {
|
||||
var pos = slidepositions[i];
|
||||
if (_.infinity==="on") {
|
||||
|
||||
pos = pos>_.wrapwidth-_.inneroffset && direction==="left" ? slidepositions[0] - ((len-i)*_.slide_width) : pos;
|
||||
pos = pos<0-_.inneroffset-_.slide_width ? direction=="left" ? pos + _.maxwidth : direction==="right" ? slidepositions[len-1] + ((i+1)*_.slide_width) : pos : pos;
|
||||
}
|
||||
|
||||
var tr= new Object();
|
||||
|
||||
tr.left = pos + _.inneroffset;
|
||||
|
||||
// CHCECK DISTANCES FROM THE CURRENT FAKE FOCUS POSITION
|
||||
var d = _.horizontal_align==="center" ? (Math.abs(_.wrapwidth/2) - (tr.left+_.slide_width/2))/_.slide_width : (_.inneroffset - tr.left)/_.slide_width,
|
||||
offsdir = d<0 ? -1:1,
|
||||
ha = _.horizontal_align==="center" ? 2 : 1;
|
||||
|
||||
|
||||
if ((setmaind && Math.abs(d)<maxd) || d===0) {
|
||||
maxd = Math.abs(d);
|
||||
_.focused = i;
|
||||
}
|
||||
|
||||
tr.width =_.slide_width;
|
||||
tr.x = 0;
|
||||
tr.transformPerspective = 1200;
|
||||
tr.transformOrigin = "50% "+_.vertical_align;
|
||||
|
||||
// SET VISIBILITY OF ELEMENT
|
||||
if (_.fadeout==="on")
|
||||
if (_.vary_fade==="on")
|
||||
tr.autoAlpha = 1-Math.abs(((1/Math.ceil(_.maxVisibleItems/ha))*d))
|
||||
else
|
||||
switch(_.horizontal_align) {
|
||||
case "center":
|
||||
tr.autoAlpha = Math.abs(d)<Math.ceil((_.maxVisibleItems/ha)-1) ? 1 : 1-(Math.abs(d)-Math.floor(Math.abs(d)));
|
||||
break;
|
||||
case "left":
|
||||
tr.autoAlpha = d<1 && d>0 ? 1-d : Math.abs(d)>_.maxVisibleItems-1 ? 1- (Math.abs(d)-(_.maxVisibleItems-1)) : 1;
|
||||
break;
|
||||
case "right":
|
||||
tr.autoAlpha = d>-1 && d<0 ? 1-Math.abs(d) : d>_.maxVisibleItems-1 ? 1- (Math.abs(d)-(_.maxVisibleItems-1)) : 1;
|
||||
break;
|
||||
}
|
||||
else
|
||||
tr.autoAlpha = Math.abs(d)<Math.ceil((_.maxVisibleItems/ha)) ? 1 : 0;
|
||||
|
||||
|
||||
|
||||
// SET SCALE DOWNS
|
||||
if (_.minScale!==undefined && _.minScale >0) {
|
||||
if (_.vary_scale==="on") {
|
||||
tr.scale = 1- Math.abs(((_.minScale/100/Math.ceil(_.maxVisibleItems/ha))*d));
|
||||
var sx = (_.slide_width - (_.slide_width*tr.scale)) *Math.abs(d);
|
||||
} else {
|
||||
tr.scale = d>=1 || d<=-1 ? 1 - _.minScale/100 : (100-( _.minScale*Math.abs(d)))/100;
|
||||
var sx=(_.slide_width - (_.slide_width*(1 - _.minScale/100)))*Math.abs(d);
|
||||
}
|
||||
}
|
||||
|
||||
// ROTATION FUNCTIONS
|
||||
if (_.maxRotation!==undefined && Math.abs(_.maxRotation)!=0) {
|
||||
if (_.vary_rotation ==="on") {
|
||||
tr.rotationY = Math.abs(_.maxRotation) - Math.abs((1-Math.abs(((1/Math.ceil(_.maxVisibleItems/ha))*d))) * _.maxRotation);
|
||||
tr.autoAlpha = Math.abs(tr.rotationY)>90 ? 0 : tr.autoAlpha;
|
||||
} else {
|
||||
tr.rotationY = d>=1 || d<=-1 ? _.maxRotation : Math.abs(d)*_.maxRotation;
|
||||
}
|
||||
tr.rotationY = d<0 ? tr.rotationY*-1 : tr.rotationY;
|
||||
}
|
||||
|
||||
// SET SPACES BETWEEN ELEMENTS
|
||||
tr.x = (-1*_.space) * d;
|
||||
|
||||
tr.left = Math.floor(tr.left);
|
||||
tr.x = Math.floor(tr.x);
|
||||
|
||||
// ADD EXTRA SPACE ADJUSTEMENT IF COVER MODE IS SELECTED
|
||||
tr.scale !== undefined ? d<0 ? tr.x-sx :tr.x+sx : tr.x;
|
||||
|
||||
// ZINDEX ADJUSTEMENT
|
||||
tr.zIndex = Math.round(100-Math.abs(d*5));
|
||||
|
||||
// TRANSFORM STYLE
|
||||
tr.transformStyle = opt.parallax.type!="3D" && opt.parallax.type!="3d" ? "flat" : "preserve-3d";
|
||||
|
||||
|
||||
|
||||
// ADJUST TRANSFORMATION OF SLIDE
|
||||
punchgs.TweenLite.set(slide,tr);
|
||||
});
|
||||
|
||||
if (unli) {
|
||||
opt.c.find('.next-revslide').removeClass("next-revslide");
|
||||
jQuery(_.slides[_.focused]).addClass("next-revslide");
|
||||
opt.c.trigger("revolution.nextslide.waiting");
|
||||
}
|
||||
|
||||
var ll = _.wrapwidth/2 - _.slide_offset ,
|
||||
rl = _.maxwidth+_.slide_offset-_.wrapwidth/2;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
/**************************************************
|
||||
- CAROUSEL FUNCTIONS -
|
||||
***************************************************/
|
||||
|
||||
var defineCarouselElements = function(opt) {
|
||||
var _ = opt.carousel;
|
||||
|
||||
_.infbackup = _.infinity;
|
||||
_.maxVisiblebackup = _.maxVisibleItems;
|
||||
// SET DEFAULT OFFSETS TO 0
|
||||
_.slide_globaloffset = "none";
|
||||
_.slide_offset = 0;
|
||||
// SET UL REFERENCE
|
||||
_.wrap = opt.c.find('.tp-carousel-wrapper');
|
||||
// COLLECT SLIDES
|
||||
_.slides = opt.c.find('.tp-revslider-slidesli');
|
||||
|
||||
// SET PERSPECTIVE IF ROTATION IS ADDED
|
||||
if (_.maxRotation!==0)
|
||||
if (opt.parallax.type!="3D" && opt.parallax.type!="3d")
|
||||
punchgs.TweenLite.set(_.wrap,{perspective:1200,transformStyle:"flat"});
|
||||
else
|
||||
punchgs.TweenLite.set(_.wrap,{perspective:1600,transformStyle:"preserve-3d"});
|
||||
|
||||
if (_.border_radius!==undefined && parseInt(_.border_radius,0) >0) {
|
||||
punchgs.TweenLite.set(opt.c.find('.tp-revslider-slidesli'),{borderRadius:_.border_radius});
|
||||
}
|
||||
}
|
||||
|
||||
var setCarouselDefaults = function(opt) {
|
||||
|
||||
if (opt.bw===undefined) _R.setSize(opt);
|
||||
var _=opt.carousel,
|
||||
loff = _R.getHorizontalOffset(opt.c,"left"),
|
||||
roff = _R.getHorizontalOffset(opt.c,"right");
|
||||
|
||||
// IF NO DEFAULTS HAS BEEN DEFINED YET
|
||||
if (_.wrap===undefined) defineCarouselElements(opt);
|
||||
// DEFAULT LI WIDTH SHOULD HAVE THE SAME WIDTH OF TH OPT WIDTH
|
||||
_.slide_width = _.stretch!=="on" ? opt.gridwidth[opt.curWinRange]*opt.bw : opt.c.width();
|
||||
|
||||
// CALCULATE CAROUSEL WIDTH
|
||||
_.maxwidth = opt.slideamount*_.slide_width;
|
||||
if (_.maxVisiblebackup>_.slides.length+1)
|
||||
_.maxVisibleItems = _.slides.length+2;
|
||||
|
||||
// SET MAXIMUM CAROUSEL WARPPER WIDTH (SHOULD BE AN ODD NUMBER)
|
||||
_.wrapwidth = (_.maxVisibleItems * _.slide_width) + ((_.maxVisibleItems - 1) * _.space);
|
||||
_.wrapwidth = opt.sliderLayout!="auto" ?
|
||||
_.wrapwidth>opt.c.closest('.tp-simpleresponsive').width() ? opt.c.closest('.tp-simpleresponsive').width() : _.wrapwidth :
|
||||
_.wrapwidth>opt.ul.width() ? opt.ul.width() : _.wrapwidth;
|
||||
|
||||
|
||||
// INFINITY MODIFICATIONS
|
||||
_.infinity = _.wrapwidth >=_.maxwidth ? "off" : _.infbackup;
|
||||
|
||||
|
||||
// SET POSITION OF WRAP CONTAINER
|
||||
_.wrapoffset = _.horizontal_align==="center" ? (opt.c.width()-roff - loff - _.wrapwidth)/2 : 0;
|
||||
_.wrapoffset = opt.sliderLayout!="auto" && opt.outernav ? 0 : _.wrapoffset < loff ? loff : _.wrapoffset;
|
||||
|
||||
var ovf = "hidden";
|
||||
if ((opt.parallax.type=="3D" || opt.parallax.type=="3d"))
|
||||
ovf = "visible";
|
||||
|
||||
|
||||
|
||||
if (_.horizontal_align==="right")
|
||||
punchgs.TweenLite.set(_.wrap,{left:"auto",right:_.wrapoffset+"px", width:_.wrapwidth, overflow:ovf});
|
||||
else
|
||||
punchgs.TweenLite.set(_.wrap,{right:"auto",left:_.wrapoffset+"px", width:_.wrapwidth, overflow:ovf});
|
||||
|
||||
|
||||
|
||||
// INNER OFFSET FOR RTL
|
||||
_.inneroffset = _.horizontal_align==="right" ? _.wrapwidth - _.slide_width : 0;
|
||||
|
||||
// THE REAL OFFSET OF THE WRAPPER
|
||||
_.realoffset = (Math.abs(_.wrap.position().left)); // + opt.c.width()/2);
|
||||
|
||||
// THE SCREEN WIDTH/2
|
||||
_.windhalf = jQuery(window).width()/2;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// DIRECTION CHECK
|
||||
var dircheck = function(d,b) {
|
||||
return d===null || jQuery.isEmptyObject(d) ? b : d === undefined ? "right" : d;;
|
||||
}
|
||||
|
||||
// ANIMATE THE CAROUSEL WITH OFFSETS
|
||||
var animateCarousel = function(opt,direction,nsae) {
|
||||
var _ = opt.carousel;
|
||||
direction = _.lastdirection = dircheck(direction,_.lastdirection);
|
||||
|
||||
var animobj = new Object();
|
||||
animobj.from = 0;
|
||||
animobj.to = _.slide_offset_target;
|
||||
if (_.positionanim!==undefined)
|
||||
_.positionanim.pause();
|
||||
_.positionanim = punchgs.TweenLite.to(animobj,1.2,{from:animobj.to,
|
||||
onUpdate:function() {
|
||||
_.slide_offset = _.slide_globaloffset + animobj.from;
|
||||
_.slide_offset = _R.simp(_.slide_offset , _.maxwidth);
|
||||
_R.organiseCarousel(opt,direction,false,false);
|
||||
},
|
||||
onComplete:function() {
|
||||
|
||||
_.slide_globaloffset = _.infinity==="off" ? _.slide_globaloffset + _.slide_offset_target : _R.simp(_.slide_globaloffset + _.slide_offset_target, _.maxwidth);
|
||||
_.slide_offset = _R.simp(_.slide_offset , _.maxwidth);
|
||||
|
||||
_R.organiseCarousel(opt,direction,false,true);
|
||||
var li = jQuery(opt.li[_.focused]);
|
||||
opt.c.find('.next-revslide').removeClass("next-revslide");
|
||||
if (nsae) _R.callingNewSlide(opt,opt.c,li.data('index'));
|
||||
}, ease:punchgs.Expo.easeOut});
|
||||
}
|
||||
|
||||
|
||||
var breduc = function(a,m) {
|
||||
return Math.abs(a)>Math.abs(m) ? a>0 ? a - Math.abs(Math.floor(a/(m))*(m)) : a + Math.abs(Math.floor(a/(m))*(m)) : a;
|
||||
}
|
||||
|
||||
// CAROUSEL INFINITY MODE, DOWN OR UP ANIMATION
|
||||
var getBestDirection = function(a,b,max) {
|
||||
var dira = b-a,max,
|
||||
dirb = (b-max) - a,max;
|
||||
dira = breduc(dira,max);
|
||||
dirb = breduc(dirb,max);
|
||||
return Math.abs(dira)>Math.abs(dirb) ? dirb : dira;
|
||||
}
|
||||
|
||||
// GET OFFSETS BEFORE ANIMATION
|
||||
var getActiveCarouselOffset = function(opt) {
|
||||
var ret = 0,
|
||||
_ = opt.carousel;
|
||||
|
||||
if (_.positionanim!==undefined) _.positionanim.kill();
|
||||
|
||||
if (_.slide_globaloffset=="none")
|
||||
_.slide_globaloffset = ret = _.horizontal_align==="center" ? (_.wrapwidth/2-_.slide_width/2) : 0;
|
||||
|
||||
else {
|
||||
|
||||
_.slide_globaloffset = _.slide_offset;
|
||||
_.slide_offset = 0;
|
||||
var ci = opt.c.find('.processing-revslide').index(),
|
||||
fi = _.horizontal_align==="center" ? ((_.wrapwidth/2-_.slide_width/2) - _.slide_globaloffset) / _.slide_width : (0 - _.slide_globaloffset) / _.slide_width;
|
||||
|
||||
fi = _R.simp(fi,opt.slideamount,false);
|
||||
ci = ci>=0 ? ci : opt.c.find('.active-revslide').index();
|
||||
ci = ci>=0 ? ci : 0;
|
||||
|
||||
ret = _.infinity==="off" ? fi-ci : -getBestDirection(fi,ci,opt.slideamount);
|
||||
ret = ret * _.slide_width;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,175 @@
|
||||
/********************************************
|
||||
* REVOLUTION 5.0 EXTENSION - KEN BURN
|
||||
* @version: 1.0.0 (03.08.2015)
|
||||
* @requires jquery.themepunch.revolution.js
|
||||
* @author ThemePunch
|
||||
*********************************************/
|
||||
|
||||
(function($) {
|
||||
|
||||
var _R = jQuery.fn.revolution;
|
||||
|
||||
///////////////////////////////////////////
|
||||
// EXTENDED FUNCTIONS AVAILABLE GLOBAL //
|
||||
///////////////////////////////////////////
|
||||
jQuery.extend(true,_R, {
|
||||
|
||||
stopKenBurn : function(l) {
|
||||
if (l.data('kbtl')!=undefined)
|
||||
l.data('kbtl').pause();
|
||||
},
|
||||
|
||||
startKenBurn : function(l,opt,prgs) {
|
||||
var d = l.data(),
|
||||
i = l.find('.defaultimg'),
|
||||
s = i.data('lazyload') || i.data('src'),
|
||||
i_a = d.owidth / d.oheight,
|
||||
cw = opt.sliderType==="carousel" ? opt.carousel.slide_width : opt.ul.width(),
|
||||
ch = opt.ul.height(),
|
||||
c_a = cw / ch;
|
||||
|
||||
|
||||
if (l.data('kbtl'))
|
||||
l.data('kbtl').kill();
|
||||
|
||||
|
||||
prgs = prgs || 0;
|
||||
|
||||
|
||||
|
||||
|
||||
// NO KEN BURN IMAGE EXIST YET
|
||||
if (l.find('.tp-kbimg').length==0) {
|
||||
l.append('<div class="tp-kbimg-wrap" style="z-index:2;width:100%;height:100%;top:0px;left:0px;position:absolute;"><img class="tp-kbimg" src="'+s+'" style="position:absolute;" width="'+d.owidth+'" height="'+d.oheight+'"></div>');
|
||||
l.data('kenburn',l.find('.tp-kbimg'));
|
||||
}
|
||||
|
||||
var getKBSides = function(w,h,f,cw,ch,ho,vo) {
|
||||
var tw = w * f,
|
||||
th = h * f,
|
||||
hd = Math.abs(cw-tw),
|
||||
vd = Math.abs(ch-th),
|
||||
s = new Object();
|
||||
s.l = (0-ho)*hd;
|
||||
s.r = s.l + tw;
|
||||
s.t = (0-vo)*vd;
|
||||
s.b = s.t + th;
|
||||
s.h = ho;
|
||||
s.v = vo;
|
||||
return s;
|
||||
},
|
||||
|
||||
getKBCorners = function(d,cw,ch,ofs,o) {
|
||||
|
||||
var p = d.bgposition.split(" ") || "center center",
|
||||
ho = p[0] == "center" ? "50%" : p[0] == "left" || p [1] == "left" ? "0%" : p[0]=="right" || p[1] =="right" ? "100%" : p[0],
|
||||
vo = p[1] == "center" ? "50%" : p[0] == "top" || p [1] == "top" ? "0%" : p[0]=="bottom" || p[1] =="bottom" ? "100%" : p[1];
|
||||
|
||||
ho = parseInt(ho,0)/100 || 0;
|
||||
vo = parseInt(vo,0)/100 || 0;
|
||||
|
||||
|
||||
var sides = new Object();
|
||||
|
||||
|
||||
sides.start = getKBSides(o.start.width,o.start.height,o.start.scale,cw,ch,ho,vo);
|
||||
sides.end = getKBSides(o.start.width,o.start.height,o.end.scale,cw,ch,ho,vo);
|
||||
|
||||
return sides;
|
||||
},
|
||||
|
||||
kcalcL = function(cw,ch,d) {
|
||||
var f=d.scalestart/100,
|
||||
fe=d.scaleend/100,
|
||||
ofs = d.oofsetstart != undefined ? d.offsetstart.split(" ") || [0,0] : [0,0],
|
||||
ofe = d.offsetend != undefined ? d.offsetend.split(" ") || [0,0] : [0,0];
|
||||
d.bgposition = d.bgposition == "center center" ? "50% 50%" : d.bgposition;
|
||||
|
||||
|
||||
var o = new Object(),
|
||||
sw = cw*f,
|
||||
sh = sw/d.owidth * d.oheight,
|
||||
ew = cw*fe,
|
||||
eh = ew/d.owidth * d.oheight;
|
||||
|
||||
|
||||
|
||||
o.start = new Object();
|
||||
o.starto = new Object();
|
||||
o.end = new Object();
|
||||
o.endo = new Object();
|
||||
|
||||
o.start.width = cw;
|
||||
o.start.height = o.start.width / d.owidth * d.oheight;
|
||||
|
||||
if (o.start.height<ch) {
|
||||
var newf = ch / o.start.height;
|
||||
o.start.height = ch;
|
||||
o.start.width = o.start.width*newf;
|
||||
}
|
||||
o.start.transformOrigin = d.bgposition;
|
||||
o.start.scale = f;
|
||||
o.end.scale = fe;
|
||||
|
||||
o.start.rotation = d.rotatestart+"deg";
|
||||
o.end.rotation = d.rotateend+"deg";
|
||||
|
||||
// MAKE SURE THAT OFFSETS ARE NOT TOO HIGH
|
||||
var c = getKBCorners(d,cw,ch,ofs,o);
|
||||
|
||||
|
||||
ofs[0] = parseFloat(ofs[0]) + c.start.l;
|
||||
ofe[0] = parseFloat(ofe[0]) + c.end.l;
|
||||
|
||||
ofs[1] = parseFloat(ofs[1]) + c.start.t;
|
||||
ofe[1] = parseFloat(ofe[1]) + c.end.t;
|
||||
|
||||
var iws = c.start.r - c.start.l,
|
||||
ihs = c.start.b - c.start.t,
|
||||
iwe = c.end.r - c.end.l,
|
||||
ihe = c.end.b - c.end.t;
|
||||
|
||||
ofs[0] = ofs[0]>0 ? 0 : iws + ofs[0] < cw ? cw-iws : ofs[0];
|
||||
ofe[0] = ofe[0]>0 ? 0 : iwe + ofe[0] < cw ? cw-iwe : ofe[0];
|
||||
|
||||
ofs[1] = ofs[1]>0 ? 0 : ihs + ofs[1] < ch ? ch-ihs : ofs[1];
|
||||
ofe[1] = ofe[1]>0 ? 0 : ihe + ofe[1] < ch ? ch-ihe : ofe[1];
|
||||
|
||||
|
||||
|
||||
o.starto.x = ofs[0]+"px";
|
||||
o.starto.y = ofs[1]+"px";
|
||||
o.endo.x = ofe[0]+"px";
|
||||
o.endo.y = ofe[1]+"px";
|
||||
o.end.ease = o.endo.ease = d.ease;
|
||||
o.end.force3D = o.endo.force3D = true;
|
||||
return o;
|
||||
};
|
||||
|
||||
if (l.data('kbtl')!=undefined) {
|
||||
l.data('kbtl').kill();
|
||||
l.removeData('kbtl');
|
||||
}
|
||||
|
||||
var k = l.data('kenburn'),
|
||||
kw = k.parent(),
|
||||
anim = kcalcL(cw,ch,d),
|
||||
kbtl = new punchgs.TimelineLite();
|
||||
|
||||
|
||||
kbtl.pause();
|
||||
|
||||
anim.start.transformOrigin = "0% 0%";
|
||||
anim.starto.transformOrigin = "0% 0%";
|
||||
|
||||
kbtl.add(punchgs.TweenLite.fromTo(k,d.duration/1000,anim.start,anim.end),0);
|
||||
kbtl.add(punchgs.TweenLite.fromTo(kw,d.duration/1000,anim.starto,anim.endo),0);
|
||||
|
||||
kbtl.progress(prgs);
|
||||
kbtl.play();
|
||||
|
||||
l.data('kbtl',kbtl);
|
||||
}
|
||||
});
|
||||
|
||||
})(jQuery);
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user