67developer weboldal készítés Ceruza egér

jQuery MagicLine menü

MagicLine menü

MagicLine menü

Egy menü alapvető feladata, hogy könnyű navigációt biztosítson, azonban nem utolsó szempont a felhasználói élmény sem amit nyújthat. Ez a cikk egy ilyen animált menü elkészítésén vezet végig.

Az alap ötlet

A menünkbe szeretnénk mindig aláhúzni azt az elemet, ami fölé visszük az elemet, és itt egy kis jQuery varázslatot is teszünk bele: a vonal nem csak egyszerűen megjelenik, hanem mindig az aktuálisan kiválasztott menüelemtől, elúszik addig az elemig ami fölé húztuk az egerünk, onmouseout-ra pedig újra visszacsúszik alaphelyzetbe.

HTML

1
2
3
4
5
6
7
8
9
10
11
12
<div class="nav-wrap">
 <ul class="group" id="example-one">
    <li class="current_page_item"><a href="#">Home</a></li>
    <li><a href="#">Buy Tickets</a></li>
    <li><a href="#">Group Sales</a></li>
    <li><a href="#">Reviews</a></li>
    <li><a href="#">The Show</a></li>
    <li><a href="#">Videos</a></li>
    <li><a href="#">Photos</a></li>
    <li><a href="#">Magic Shop</a></li>
 </ul>
</div>

CSS

1
2
3
4
5
6
.nav-wrap { margin: 50px auto;  background-color: rgba(0,0,0,0.6); border-top: 2px solid white; border-bottom: 2px solid white; }
#example-one { margin: 0 auto; list-style: none; position: relative; width: 960px; }
#example-one li { display: inline; }
#example-one li a { color: #bbb; font-size: 14px; display: block; float: left; padding: 6px 10px 4px 10px; text-decoration: none; text-transform: uppercase; }
#example-one li a:hover { color: white; }
#magic-line { position: absolute; bottom: -2px; left: 0; width: 100px; height: 2px; background: #fe4902; }

jQuery JavaScript

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
$(function() {
 
    var $el, leftPos, newWidth,
        $mainNav = $("#example-one");
 
    $mainNav.append("<li id='magic-line'></li>");
    var $magicLine = $("#magic-line");
 
    $magicLine
        .width($(".current_page_item").width())
        .css("left", $(".current_page_item a").position().left)
        .data("origLeft", $magicLine.position().left)
        .data("origWidth", $magicLine.width());
 
    $("#example-one li a").hover(function() {
        $el = $(this);
        leftPos = $el.position().left;
        newWidth = $el.parent().width();
        $magicLine.stop().animate({
            left: leftPos,
            width: newWidth
        });
    }, function() {
        $magicLine.stop().animate({
            left: $magicLine.data("origLeft"),
            width: $magicLine.data("origWidth")
        });
    });
});

Mőködő demo

Ezt a menüt használom a kollégiumom oldalán is, nézd meg:

Demo

Kapcsolódó cikkek

Mappa bejárása PHP glob() függvényével

Nincs kategorizálva

Mondj véleményt

(kötelező)

(kötelező)


Ratting Gergő
Email címem 67developer@gmail.com