Goede maandag morgen mede tweakers,
Ik heb een raar(?) probleempje met een custom functie van mij.
Ik heb een functie die een klein pijltje doet bewegen onder een menu balk zodra men met de muis op de link gaat staan.
dit is de HTML structuur:
En dit is mijn jQuery code:
Let op: [code]-tags kunnen ook een taal bevatten
Nu is dit het probleem:
Zodra ik hover over een link begint hij met animeren, en net als de animatie klaar is schiet hij in een keer terug zonder animatie naar de active link... Ik snap er helemaal niets van. Kan iemand mij hier bij helpen?
Indien er iets niet duidelijk is hoor ik dit graag.
B.v.d,
Ik heb een raar(?) probleempje met een custom functie van mij.
Ik heb een functie die een klein pijltje doet bewegen onder een menu balk zodra men met de muis op de link gaat staan.
dit is de HTML structuur:
HTML:
1
2
3
4
5
6
7
8
| <ul id="nav"> <li><a href="#">Link 1</a></li> <li><a href="#">Link 2</a></li> <li><a href="#">Link 3</a></li> </ul> <div id="arrow"> <img src="pijltje.png"/> </div> |
En dit is mijn jQuery code:
JavaScript: jQuery
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| $.fn.hoverArrow = function( ){ // Cache Variable's var cacheNav = $("#nav"); var cacheArrow = $(".arrow"); // Animation variables var animInSpeed = 600; var animOutSpeed = 1000; // Calculation variables var offsetLink; var offsetActive = cacheNav.children(".active").offset().left; var arrowOffset; var arrowCenter = (cacheArrow.children().width()) / 2; var activeCenter = (cacheNav.children(".active").width()) / 2; var linkCenter; function setArrow(){ arrowOffset = (offsetActive + activeCenter) - arrowCenter; cacheArrow.children('img').css('left',arrowOffset); } setArrow(); cacheNav.children("li").hover(function(){ offsetLink = $(this).offset().left; linkCenter = ($(this).width()) / 2; arrowOffset = (offsetLink + linkCenter) - arrowCenter; cacheArrow.children('img').animate({left: arrowOffset}, { queue:false, duration: animInSpeed }, 'slide'); },function(){ arrowOffset = (offsetActive + activeCenter) - arrowCenter; cacheArrow.children('img').animate({left: arrowOffset}, { queue:false, duration: animOutSpeed }, 'slide'); }); } |
Let op: [code]-tags kunnen ook een taal bevatten
Nu is dit het probleem:
Zodra ik hover over een link begint hij met animeren, en net als de animatie klaar is schiet hij in een keer terug zonder animatie naar de active link... Ik snap er helemaal niets van. Kan iemand mij hier bij helpen?
Indien er iets niet duidelijk is hoor ik dit graag.
B.v.d,
[ Voor 1% gewijzigd door BtM909 op 27-01-2011 11:39 ]