revolution.extension.actions.js 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. /********************************************
  2. * REVOLUTION 5.0 EXTENSION - ACTIONS
  3. * @version: 1.0.4 (29.09.2015)
  4. * @requires jquery.themepunch.revolution.js
  5. * @author ThemePunch
  6. *********************************************/
  7. (function($) {
  8. var _R = jQuery.fn.revolution;
  9. ///////////////////////////////////////////
  10. // EXTENDED FUNCTIONS AVAILABLE GLOBAL //
  11. ///////////////////////////////////////////
  12. jQuery.extend(true,_R, {
  13. checkActions : function(_nc,opt,as) {
  14. checkActions_intern(_nc,opt,as);
  15. }
  16. });
  17. //////////////////////////////////////////
  18. // - INITIALISATION OF ACTIONS - //
  19. //////////////////////////////////////////
  20. var checkActions_intern = function(_nc,opt,as) {
  21. if (as)
  22. jQuery.each(as,function(i,a) {
  23. a.delay = parseInt(a.delay,0)/1000;
  24. _nc.addClass("noSwipe")
  25. _nc.on(a.event,function() {
  26. var tnc = jQuery("#"+a.layer);
  27. if (a.action=="stoplayer" || a.action=="togglelayer" || a.action=="startlayer") {
  28. if (tnc.length>0)
  29. if (a.action=="startlayer" || (a.action=="togglelayer" && tnc.data('animdirection')!="in")) {
  30. tnc.data('animdirection',"in");
  31. var otl = tnc.data('timeline_out'),
  32. base_offsetx = opt.sliderType==="carousel" ? 0 : opt.width/2 - (opt.gridwidth[opt.curWinRange]*opt.bw)/2,
  33. base_offsety=0;
  34. if (otl!=undefined) otl.pause(0).kill();
  35. if (_R.animateSingleCaption) _R.animateSingleCaption(tnc,opt,base_offsetx,base_offsety,0,false,true);
  36. var tl = tnc.data('timeline');
  37. tnc.data('triggerstate',"on");
  38. punchgs.TweenLite.delayedCall(a.delay,function() {
  39. tl.play(0);
  40. },[tl]);
  41. } else
  42. if (a.action=="stoplayer" || (a.action=="togglelayer" && tnc.data('animdirection')!="out")) {
  43. tnc.data('animdirection',"out");
  44. tnc.data('triggered',true);
  45. tnc.data('triggerstate',"off");
  46. if (_R.stopVideo) _R.stopVideo(tnc,opt);
  47. if (_R.endMoveCaption)
  48. punchgs.TweenLite.delayedCall(a.delay,_R.endMoveCaption,[tnc,null,null,opt]);
  49. }
  50. } else
  51. punchgs.TweenLite.delayedCall(a.delay,function() {
  52. switch (a.action) {
  53. case "scrollbelow":
  54. _nc.addClass("tp-scrollbelowslider");
  55. _nc.data('scrolloffset',a.offset);
  56. _nc.data('scrolldelay',a.delay);
  57. var off=getOffContH(opt.fullScreenOffsetContainer) || 0,
  58. aof = parseInt(a.offset,0) || 0;
  59. off = off - aof || 0;
  60. jQuery('body,html').animate({scrollTop:(opt.c.offset().top+(jQuery(opt.li[0]).height())-off)+"px"},{duration:400});
  61. break;
  62. case "callback":
  63. eval(a.callback);
  64. break;
  65. case "jumptoslide":
  66. switch (a.slide.toLowerCase()) {
  67. case "+1":
  68. case "next":
  69. opt.sc_indicator="arrow";
  70. _R.callingNewSlide(opt,opt.c,1);
  71. break;
  72. case "previous":
  73. case "prev":
  74. case "-1":
  75. opt.sc_indicator="arrow";
  76. _R.callingNewSlide(opt,opt.c,-1);
  77. break;
  78. default:
  79. var ts = jQuery.isNumeric(a.slide) ? parseInt(a.slide,0) : a.slide;
  80. _R.callingNewSlide(opt,opt.c,ts);
  81. break;
  82. }
  83. break;
  84. case "simplelink":
  85. window.open(a.url,a.target);
  86. break;
  87. case "toggleslider":
  88. opt.noloopanymore=0;
  89. if (opt.sliderstatus=="playing")
  90. opt.c.revpause();
  91. else
  92. opt.c.revresume();
  93. break;
  94. case "pauseslider":
  95. opt.c.revpause();
  96. break;
  97. case "playslider":
  98. opt.noloopanymore=0;
  99. opt.c.revresume();
  100. break;
  101. case "playvideo":
  102. if (tnc.length>0)
  103. _R.playVideo(tnc,opt);
  104. break;
  105. case "stopvideo":
  106. if (tnc.length>0)
  107. if (_R.stopVideo) _R.stopVideo(tnc,opt);
  108. break;
  109. case "togglevideo":
  110. if (tnc.length>0)
  111. if (!_R.isVideoPlaying(tnc,opt))
  112. _R.playVideo(tnc,opt);
  113. else
  114. if (_R.stopVideo) _R.stopVideo(tnc,opt);
  115. break;
  116. case "simulateclick":
  117. if (tnc.length>0) tnc.click();
  118. break;
  119. case "toggleclass":
  120. if (tnc.length>0)
  121. if (!tnc.hasClass(a.classname))
  122. tnc.addClass(a.classname);
  123. else
  124. tnc.removeClass(a.classname);
  125. break;
  126. case "gofullscreen":
  127. case "exitfullscreen":
  128. case "togglefullscreen":
  129. if (jQuery('#rs-go-fullscreen').length>0 && (a.action=="togglefullscreen" || a.action=="exitfullscreen")) {
  130. jQuery('#rs-go-fullscreen').appendTo(jQuery('#rs-was-here'));
  131. var paw = opt.c.closest('.forcefullwidth_wrapper_tp_banner').length>0 ? opt.c.closest('.forcefullwidth_wrapper_tp_banner') : opt.c.closest('.rev_slider_wrapper');
  132. paw.unwrap();
  133. paw.unwrap();
  134. opt.minHeight = opt.oldminheight;
  135. opt.infullscreenmode = false;
  136. opt.c.revredraw();
  137. if (opt.playingvideos != undefined && opt.playingvideos.length>0) {
  138. jQuery.each(opt.playingvideos,function(i,_nc) {
  139. _R.playVideo(_nc,opt);
  140. });
  141. }
  142. } else
  143. if (jQuery('#rs-go-fullscreen').length==0 && (a.action=="togglefullscreen" || a.action=="gofullscreen")) {
  144. var paw = opt.c.closest('.forcefullwidth_wrapper_tp_banner').length>0 ? opt.c.closest('.forcefullwidth_wrapper_tp_banner') : opt.c.closest('.rev_slider_wrapper');
  145. paw.wrap('<div id="rs-was-here"><div id="rs-go-fullscreen"></div></div>');
  146. var gf = jQuery('#rs-go-fullscreen');
  147. gf.appendTo(jQuery('body'));
  148. gf.css({position:'fixed',width:'100%',height:'100%',top:'0px',left:'0px',zIndex:'9999999',background:'#ffffff'});
  149. opt.oldminheight = opt.minHeight;
  150. opt.minHeight = jQuery(window).height();
  151. opt.infullscreenmode = true;
  152. opt.c.revredraw();
  153. if (opt.playingvideos != undefined && opt.playingvideos.length>0) {
  154. jQuery.each(opt.playingvideos,function(i,_nc) {
  155. _R.playVideo(_nc,opt);
  156. });
  157. }
  158. }
  159. break;
  160. }
  161. },[tnc,opt,a,_nc]);
  162. });
  163. switch (a.action) {
  164. case "togglelayer":
  165. case "startlayer":
  166. case "playlayer":
  167. case "stoplayer":
  168. var tnc = jQuery("#"+a.layer);
  169. if (tnc.data('start')!="bytrigger") {
  170. tnc.data('triggerstate',"on");
  171. tnc.data('animdirection',"in");
  172. }
  173. break;
  174. }
  175. })
  176. }
  177. var getOffContH = function(c) {
  178. if (c==undefined) return 0;
  179. if (c.split(',').length>1) {
  180. oc = c.split(",");
  181. var a =0;
  182. if (oc)
  183. jQuery.each(oc,function(index,sc) {
  184. if (jQuery(sc).length>0)
  185. a = a + jQuery(sc).outerHeight(true);
  186. });
  187. return a;
  188. } else {
  189. return jQuery(c).height();
  190. }
  191. return 0;
  192. }
  193. })(jQuery);