Panowie mam następujący kod;

  1. nav select {
  2. display: none;
  3. }
  4.  
  5. header nav {
  6. position:absolute;
  7. top:50%;
  8. right:0;
  9. margin-top:-8px;
  10. z-index:9999;
  11. }
  12.  
  13. header nav ul{
  14. padding:0px;
  15. list-style-image:none;
  16. }
  17.  
  18. nav > ul > li {
  19. display:inline-block;
  20. position:relative;
  21. }
  22.  
  23. nav > ul > li+li {
  24. margin-left:28px;
  25. }
  26.  
  27. nav a {
  28. text-decoration:none;
  29. }
  30.  
  31. header nav .sub-menu a:hover{
  32. }
  33.  
  34. header .sub-menu li:hover {
  35. }
  36.  
  37. nav > ul ul {
  38. display:none;
  39. }
  40.  
  41. .submenu {
  42. overflow:hidden;
  43. height:14px;
  44. }
  45.  
  46. .submenu ul {
  47. padding-bottom:1px;
  48. }
  49.  
  50. .submenu strong {
  51. float:left;
  52. }
  53.  
  54. .submenu li {
  55. float:left;
  56. }
  57.  
  58. header .sub-menu {
  59. position:absolute;
  60. z-index:2;
  61. left:-12px;
  62. top:40px;
  63. width:210px;
  64. }
  65.  
  66. header .sub-menu a {
  67. display:inline-block;
  68. width:100%;
  69. padding:9px 10px;
  70. }
  71.  
  72. header .sub-menu .sub-menu {
  73. left:231px;
  74. top:0;
  75. }
  76.  
  77. header .sub-menu .sub-menu:before {
  78. content:'';
  79. }
  80.  
  81. header .sub-menu li {
  82. position:relative;
  83. margin:0;
  84. }
  85.  
  86.  
  87. <header>
  88. <nav>
  89. <ul class="menu">
  90. <li class="current-menu-item"><a href="#">Start</a></li>
  91. <li>
  92. <a href="#">Coś</a>
  93. <ul class="sub-menu">
  94. <li><a href="#">Link 1</a></li>
  95. <li><a href="#">Link 2</a></li>
  96. <li>
  97. <a href="#">Link 3 &rarr;</a>
  98. <ul class="sub-menu">
  99. <li><a href="#">Podlink 1</a></li>
  100. <li><a href="#">Podlink 2</a></li>
  101. </ul>
  102. </li>
  103. <li><a href="#">Link 4</a></li>
  104. </ul>
  105. </li>
  106. <li>
  107. <a href="#">Coś 2</a>
  108.  


Powyższy kod ma rozsuwane menu Start, coś, coś2 , ponadto link w menu coś ma podmenu link 1 i link 2 oraz link3 (który ma także swoje podmenu (podlink1, podlink2).

Teraz postanowiłem dodać fajną funkcję magic line - co to jest odsyłam do googla jak ktoś nie wie.
I tu się zaczynają schody bo za cholerę nie mogę sobie poradzić z CSS.

kod:

  1. <style type='text/css'>
  2. #magic-line {
  3. position: absolute; top: -2px; left: 0; width: 100px; height: 2px; background: #fe4902;
  4. -webkit-transition: background 400ms ease-in-out;
  5. -moz-transition: background 400ms ease-in-out;
  6. -ms-transition: background 400ms ease-in-out;
  7. -o-transition: background 400ms ease-in-out
  8. }
  9. #magic-line.current-menu-item {
  10. position: absolute; top: -2px; left: 0; width: 100px; height: 2px; background: #fe4902;
  11. }
  12. #magic-line.hover {
  13. background:#00f;
  14. -webkit-transition: background 400ms ease-in-out;
  15. -moz-transition: background 400ms ease-in-out;
  16. -ms-transition: background 400ms ease-in-out;
  17. -o-transition: background 400ms ease-in-out;
  18. transition: background 400ms ease-in-out;
  19. }
  20. </style>
  21.  
  22. <script type='text/javascript'>
  23. $(window).load(function(){
  24. $(function() {
  25.  
  26. var $el, leftPos, newWidth,
  27. $mainNav = $(".menu");
  28.  
  29. $mainNav.append("<div id='magic-line'></div>");
  30. var $magicLine = $("#magic-line");
  31.  
  32.  
  33.  
  34. $magicLine
  35. .width($(".current-menu-item").width())
  36. .css("left", $(".current-menu-item a").position().left)
  37. .data("origLeft", $magicLine.position().left)
  38. .data("origWidth", $magicLine.width());
  39.  
  40. $(".menu li a").hover(function() {
  41. $el = $(this);
  42. leftPos = $el.position().left;
  43. newWidth = $el.parent().width();
  44. $magicLine.stop().animate({
  45. left: leftPos,
  46. width: newWidth
  47. });
  48.  
  49.  
  50. }, function() {
  51. $magicLine.stop().animate({
  52. left: $magicLine.data("origLeft"),
  53. width: $magicLine.data("origWidth")
  54. });
  55. });
  56.  
  57.  
  58.  
  59. $('.menu li:not(".current-menu-item")').hover(
  60. function(){ $('#magic-line').addClass('hover'); },
  61. function(){ $('#magic-line').removeClass('hover'); }
  62. );
  63.  
  64.  
  65.  
  66. });
  67.  
  68. });


Powyższa funkcja dodaje do left:0 x pikseli. ale u mnie to wygląda tak, że:
- najechanie na coś, linia magiczna zostaje nad start (lekko się zmniejszy)
- najechanie na coś->link1, coś->link2, coś->link3, magiczna linia się rozszerza aż na szerokość od start do coś2 (gdzie powinno być tylko nad coś).
- najechanie na coś2, linia magiczna zostaje nad start (lekko się tylko poszerzy).

proszę o pomoc w poprawieniu CSS i wydaje mi się , że też trzeba będzie przerobić JS.

ktoś ma jakiś pomysł ?