jQuery - problem z menu

adimoo

Avatar: adimoo

2013-04-26 02:03

Witajcie, mam problem, moje menu2 jest generowane w taki sposób :


<div id="header_1">
  <
div id="example-two">
    <
div class="l1 selected menufirst"><a href="./">O nas</a></div>
    <
div class="l2"><a href="?sklep-w-cieszynie,3">Sklep w Cieszynie</a></div>
    <
div class="l3 menutop"><a href="?wysylka-i-platnosc,27">Wysyłka i płatność</a></div>
    <
div class="l4"><a href="?regulamin,4">Regulamin</a></div>    
    <
div class="lL"><a href="?kontakt,2">Kontakt</a></div>
    <
div id="magic-line-two"></div>
  </
div>        
</
div>



na samym dole w index.php (więc po </html>) mam doklejone jQuery :

<script type="text/javascript" src="<?php echo $config['dir_plugins']; ?>jquery-1.9.1.js"></script>
<script type="text/javascript" src="<?php echo $config['dir_plugins']; ?>example.js"></script>

plik example.js :


// DOM Ready
$(function() {

    var 
$elleftPosnewWidth// Stałe
        
$mainNav2 = $("#example-two"); // bar nawigacji (menu2)
    
    
var $magicLineTwo = $("#magic-line-two"); //podpięcie pod zmienną
    
    
if ($(".menutop").length>0){ // Jeżeli jest "SELECTED" to użyj tego
         
$magicLineTwo
        
.height(29)
        .
css("left", $("div .menutop a").position().left)
        .
width($("div .menutop").width())
        .
data("origLeft"$magicLineTwo.position().left)
        .
data("origWidth"$magicLineTwo.width())

    } else { 
// JEŻELI INNA KATEGORIA to ustaw na PIERWSZY element MENU2

    
$magicLineTwo
        
.height(29)
        .
css("left", $("div .menufirst a").position().left)
        .
width($("div .menufirst").width())
        .
data("origLeft"$magicLineTwo.position().left)
        .
data("origWidth"$magicLineTwo.width())
    }
    
    
    
// FUNKCJA ANIMACJI CHODZI SUPER :)
    
$("#example-two a").hover(function() {
        
$el = $(this);
        
leftPos $el.position().left;
        
newWidth $el.parent().width();
        
$magicLineTwo.stop().animate({
            
leftleftPos,
            
widthnewWidth,
        })
    }, function() {
        
$magicLineTwo.stop().animate({
            
left$magicLineTwo.data("origLeft"),
            
width$magicLineTwo.data("origWidth"),
        });    
    });
});



PROBLEM : Skrypt ŹLE interpretuje czasami width (zła szerokość) i left (nie schodzi się 'pod' napis).

Zobaczcie - kliknijcie na Menu2 na górze i parę razzy F5 - na każdej pozycji co jakiś czas coś się dzieje złego (to za mały, to przesunięty :(...):

hamster.froststudio.pl

ew. CSS (ale to nie wina CSS - na czysto chodzi super, coś Q.Cart chrzani po drodze) :


#example-two {
    
text-align:center;
    
margin0 auto
    list-
stylenone
    
positionrelative;
    
font-family'Roboto Condensed'sans-serif;
    
position:relative;
    
top:20px;
}
#example-two div { 
    
displayinline-block
}
#example-two div a { 
    
positionrelative
    
z-index200
    
color#fff; 
    
font-size13px
    
displayblock
    
floatleft
    
padding6px 8px 4px 8px;
    
text-decorationnone;
    
text-transformuppercase
}
#example-two div a:hover { 
    
colorwhite
}
#example-two #magic-line-two { 
    
positionabsolute
    
top0
    
left0
    
width100px;
    
color:#000000; 
    
background#adcb31; 
    
z-index100
    -
moz-border-radius5px
    -
webkit-border-radius5px;
    
border-radius5px;
}

.
ie6 #example-two div, .ie7 #example-two div {
    
displayinline;
}



Na czystym Html działa OK i nic się nie dzieje (jeżeli wydzielę menu + CSS + jQuery).

Pomocy :P

» Quick.Cart v6.x

froststudio.pl

adimoo

Avatar: adimoo

2013-04-26 02:27

Dobra mam - walczyłem 6h, potem się zdecydowałem napisać i w ciągu 15min znalazłem rozwiązanie :

$(window).load(function() {
}

dokument.ready() nie daje rady niestety, można usunąć temat lub zostawić notkę : Jeżeli jQuery ma problem z pobieraniem wartości to wrzucać wszystko w powyższą funkcję.

Admina proszę o uporządkowanie i przepraszam za problem.

froststudio.pl

Do góry
o nas | kontakt