Advertisement
Guest User

Untitled

a guest
Apr 19th, 2014
11
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.32 KB | None | 0 0
  1. jQuery(document).ready(function($) {
  2.  
  3. // Define Easing
  4. jQuery.easing.def = 'easeOutQuad';
  5.  
  6. // Show App Dock after Loaded
  7. if ( !$.browser.msie ){
  8. var app_dock_imgs_load = $('#app-dock').imagesLoaded();
  9. app_dock_imgs_load.always( function( $images ){
  10. $('#app-dock').animate({
  11. opacity: 1
  12. }, 600);
  13. });
  14. } else {
  15. $('#app-dock').css('opacity', 1);
  16. }
  17.  
  18. // App Dock
  19. var slide_distance = $('.app-icon').outerWidth(true);
  20. var slide_speed = slide_distance * 1.5;
  21. var fade_speed = slide_distance / 2;
  22. var icon_height = $('.app-icon img').outerHeight();
  23. var app_amount = $('.app-pack .app-icon').size();
  24.  
  25. function app_variable_init() {
  26. slide_distance = $('.app-icon').outerWidth(true);
  27. slide_speed = slide_distance * 1.5;
  28. fade_speed = slide_distance / 2;
  29. icon_height = $('.app-icon img').outerHeight();
  30. app_amount = $('.app-pack .app-icon').size();
  31. }
  32.  
  33. // Init
  34. $('.app-info-balloon').css('bottom', icon_height);
  35.  
  36. if( app_amount > apps_count || true ) $('.app-pack').addClass('app-pack-slide').addClass('app-pack-' + app_amount );
  37. // Active first N app
  38. $('.app-icon:lt('+apps_count+')').addClass('app-icon-active');
  39. // Fix clickable invisible icon
  40. $('.app-icon:gt('+(apps_count-1)+')').css('visibility', 'hidden');
  41.  
  42. icon_reindex();
  43.  
  44. // Add Navigation Button
  45. $('#app-control').append('<div id="home-feature-prev"></div><div id="home-feature-next"></div>');
  46.  
  47. //setInterval(app_next, 3000);
  48.  
  49. $('#home-feature-prev').click(function(){
  50. app_next();
  51. });
  52. $('#home-feature-next').click(function(){
  53. app_prev();
  54. });
  55.  
  56.  
  57. $('.app-icon a.app-balloon-toggle-link').mouseenter(function(e){
  58.  
  59. $('.app-info-balloon', $(this).parents('.app-icon')).addClass('app-info-balloon-active').stop().animate({
  60. opacity: 1,
  61. bottom: icon_height + 20
  62. }, 200);
  63.  
  64. });
  65. $('.app-icon a.app-balloon-toggle-link').mouseout(function(e){
  66. $('.app-info-balloon-active', $(this).parents('.app-icon')).stop(true, true).delay(200).animate({
  67. opacity: 0,
  68. bottom: icon_height
  69. }, 100, function(){
  70. $(this).removeClass('app-info-balloon-active');
  71. });
  72. });
  73.  
  74. var screen_size = '';
  75. setInterval(function() {
  76. if( $(window).width() > 1024 ) {
  77. if( screen_size != 'screen' ) {
  78. if( app_amount <= apps_count ) $('#app-control').fadeOut();
  79. else $('#app-control').fadeIn();
  80. app_reset();
  81. screen_size = 'screen';
  82. }
  83. }else if( $(window).width() > 767 ) {
  84. if( screen_size != 'tablet' ) {
  85. console.log('tablet');
  86. if( app_amount <= 3 && app_amount <= apps_count ) $('#app-control').fadeOut();
  87. else $('#app-control').fadeIn();
  88. app_reset();
  89. screen_size = 'tablet';
  90. }
  91. }else {
  92. if( screen_size != 'phone' ) {
  93. console.log('phone');
  94. if( app_amount <= 1 ) $('#app-control').fadeOut();
  95. else $('#app-control').fadeIn();
  96. app_reset();
  97. screen_size = 'phone';
  98. }
  99. }
  100. }, 1000);
  101.  
  102. function app_reset() {
  103. app_variable_init();
  104. $('.app-pack').css('left', 0);
  105. $('.app-icon').css('visibility', 'visible').css('opacity', 1);
  106. }
  107.  
  108. function app_prev(){
  109. app_variable_init();
  110. $('.app-info-balloon-active').css('opacity', 0).css('bottom', icon_height).removeClass('app-info-balloon-active');
  111. // Check that next app icon exist
  112. if( $('.app-icon-active:last').next().size() == 0 ) {
  113. $('.app-icon:first').appendTo('.app-pack');
  114. var active_index = -$('.app-icon-active:first').index();
  115. $('.app-pack').css('left', active_index * slide_distance + 'px');
  116. }
  117.  
  118. // Fade Icon
  119. $('.app-icon-active:last').next().addClass('app-icon-active').css('visibility', 'visible').css('opacity', 0).animate({
  120. opacity: 1
  121. }, 600);
  122. $('.app-icon-active:first').removeClass('app-icon-active').css('opacity', 1).animate({
  123. opacity: 0
  124. }, fade_speed, function(){
  125. $(this).css('visibility', 'hidden');
  126. $('.app-icon-active').css('visibility', 'visible');
  127. });
  128.  
  129. // Slide the Icon Pack
  130. $('.app-pack').stop(false, false).animate({
  131. left: '-=' + slide_distance
  132. }, slide_speed);
  133.  
  134. icon_reindex();
  135. }
  136.  
  137. function app_next(){
  138.  
  139. app_variable_init();
  140. $('.app-info-balloon-active').css('opacity', 0).css('bottom', icon_height).removeClass('app-info-balloon-active');
  141. // Check that next app icon exist
  142. if( $('.app-icon-active:first').prev().size() == 0 ) {
  143. $('.app-icon:last').prependTo('.app-pack');
  144.  
  145. var active_index = -$('.app-icon-active:first').index();
  146. $('.app-pack').css('left', active_index * slide_distance + 'px');
  147. }
  148.  
  149. // Fade Icon
  150. $('.app-icon-active:first').prev().addClass('app-icon-active').css('visibility', 'visible').css('opacity', 0).animate({
  151. opacity: 1
  152. }, 600);
  153. $('.app-icon-active:last').removeClass('app-icon-active').css('opacity', 1).animate({
  154. opacity: 0
  155. }, fade_speed, function(){
  156. $(this).css('visibility', 'hidden');
  157. $('.app-icon-active').css('visibility', 'visible');
  158. });
  159.  
  160. // Slide the Icon Pack
  161. $('.app-pack').stop(false, false).animate({
  162. left: '+=' + slide_distance
  163. }, slide_speed);
  164.  
  165. icon_reindex();
  166. }
  167.  
  168. function icon_reindex(){
  169. $('.app-icon').removeClass (function (index, css) {
  170. return (css.match (/\app-icon-active-\S+/g) || []).join(' ');
  171. });
  172.  
  173. var counter = 1;
  174. $('.app-icon-active').each(function(){
  175. $(this).addClass('app-icon-active-' + counter++);
  176. });
  177. }
  178.  
  179. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement