[JS]現在位置のハイライトをアニメーションで移動させるナビゲーション -MagicLine
Post on:2010年2月11日
並列に配置されたナビゲーションの現在位置を明示したハイライトをアニメーションで移動させるスクリプトをCSS-Trickから紹介します。
jQuery MagicLine Navigation
デモページ
現在位置を明示するサインは、ライン(キャプチャ:上)と背景(同:下)の2種類が用意されています。
また、背景は各ラベルでカラーが異なります。
ナビゲーションの実装はリスト要素をdiv要素で内包したシンプルなものとなっています。
HTML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<textarea name="code" class="html" cols="60" rows="5"> <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> </textarea> |
スクリプトのベースには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 30 31 |
<textarea name="code" class="js" cols="60" rows="5"> $(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") }); }); }); </textarea> |
sponsors