Advertisement
saren86

ptaszek

Feb 17th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.  
  3. function setMenuTriangle(menu) {
  4. console.log("menu find");
  5.  
  6.     console.log(menu.find('.menu_triangle').length);
  7.     if(!(menu.find('.menu_triangle').length)){
  8.         menu.prepend('<div class="menu_triangle"></div>');
  9.     }
  10.    
  11.  
  12.     var elems = menu.find('ul.navbar-nav > li');
  13.     var menu_ul = menu.find('ul.navbar-nav');
  14.     var triangle = menu.find('.menu_triangle');
  15.     var curr_pos = -5;
  16.     var menu_margin = parseInt(menu_ul.css('padding-left').replace('px', '')) + parseInt(menu_ul.css('margin-right').replace('px', ''));
  17.     var elems_width = [];
  18.  
  19.     var prevElem = 0;
  20.     elems.each(function () {
  21.          elems_width.push( prevElem + $(this).width()/2);
  22.          prevElem += $(this).width();
  23.     });
  24.   console.log(elems_width);
  25.  
  26.     var active_elem = menu.find('ul.navbar-nav > li.active').index();
  27.  
  28.     if (active_elem !== -1) {
  29.         curr_pos = menu_margin + elems_width[active_elem];
  30.     }
  31.     triangle.css('transform', 'translateX(' + curr_pos + 'px');
  32.  
  33.     //hover
  34.     elems.off().hover(
  35.         function () {
  36.             triangle.css('transform', 'translateX(' +(menu_margin + elems_width[menu.find(this).index()]) + 'px');
  37.         },
  38.         function () {
  39.             if (active_elem !== -1) {
  40.                 triangle.css('transform', 'translateX('+(menu_margin + elems_width[menu.find(this).index()]) +'px');
  41.             } else {
  42.                 triangle.css('transform', 'translateX(' + curr_pos + 'px');
  43.             }
  44.         }
  45.     );
  46.  
  47. }
  48.  
  49.  
  50. setMenuTriangle($('.menu_comp_left'));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement