ガレージドアメニュー

garagemenuexample

Jqueryを使用して実装された非常に美しいメニューは、フラッシュに実装されたメニューのみに匹敵します。

このメニューは、互いに重ね合わされた画像のレイヤーの背景の位置を変更することで機能します。



それでは、始めましょう。

開始するには、背景(最下層)が必要です。

メニューの背景の例

同じ「ガレージドア」の画像(中間層):



シャッターテンプレート

そして、「出入り口(最上層)の画像:

窓



htmlメニューフレーム自体を作成します。

< ul id = "menuback" >

< li class = "shutter" id = "shutter1" > <a class = "link" href = "# 1">リンク1 </ a > </ li >

< li class = "shutter" id = "shutter2" > <a class = "link" href = "# 2">リンク2 </ a > </ li >

< li class = "shutter" id = "shutter3" > <a class = "link" href = "# 3">リンク3 </ a > </ li >

< li class = "shutter" id = "shutter4" > <a class = "link" href = "# 4">リンク4 </ a > </ li >

</ ul >




cssまたはjavascriptが無効になっている場合、メニューは通常のリンクのリストのように見えます。つまり、メイン機能は引き続き実行されます。



cssを使用してメニューを飾ります:

* {margin:0px; パディング:0px; }

body {背景:#c1c1c1; }

{輪郭スタイル:なし; }



ul#menuback {

マージン:50ピクセル自動;

リストスタイル:なし;

背景:url(../ images / menu-bg.jpg);

幅:800px;

オーバーフロー:自動;

}



ul#menuback li.shutter {

幅:200px;

高さ:100px;

ディスプレイ:ブロック;

float:左;

}



ul#menuback li#shutter1 {

背景:url(../ images / shutter-africanplains.jpg)no-repeat;

}

ul#menuback li#shutter2 {

背景:url(../ images / shutter-reptiles.jpg)no-repeat;

}

ul#menuback li#shutter3 {

背景:url(../ images / shutter-aviary.jpg)繰り返しなし;

}

ul#menuback li#shutter4 {

背景:url(../ images / shutter-arcticzone.jpg)no-repeat;

}



a.link {

幅:200px;

高さ:100px;

ディスプレイ:ブロック;

背景:url(../ images / window.png)繰り返しなしの下部中央。

テキストインデント:-9999px;

}
そして最後に、jQueryで彼に命を吹き込んでください。



JQuery自体はcssのバックグラウンド位置で完全に機能することはできないため、1キロバイトの小さなプラグインを使用します。

< script type = "text / javascript" src = "js / jquery-1.2.6.min.js" > </ script >

<script type = "text / javascript" src = "js / jquery.backgroundPosition.js" > </ script>



<script type = "text / javascript" >

$( document ).ready( function (){



// Firefoxでcssを設定します(backgroundPosition jsを使用するために必要です)

$( '#shutter1' ). css ({backgroundPosition: '0px 0px' });



//シャッターをアニメーション化します

$( ".link" ).hover( function (){

$( this ).parent()。animate({backgroundPosition: '(0px -100px)' }、500);

}、 関数 (){

$( this ).parent()。animate({backgroundPosition: '(0px 0px)' }、500);

});

});

</ スクリプト >




更新: IE6では、PNG画像の透明度の処理が正しくないため、メニューは正しく機能しません。

この不具合を修正するために、次のcssコードを使用します(このハックを誤って使用した場合は謝罪します)。

<!-[IE 7の場合]>

<style type = "text / css">

a.link {

フィルター:progid:DXImageTransform.Microsoft.AlphaImageLoader(src = 'images / window.png'、sizingMethod = 'scale');

背景:url(images / blank.gif)繰り返しなしの下部中央。

}

</ style>

<![endif]->




作業の結果を(画像ソースとともに)以下で確認またはダウンロードできます。

ご清聴ありがとうございました!



私のブログ-Chernev.ru

結果を見る(デモ)

ソースをダウンロード

ソース(英語)




All Articles