Mootoolsでグラデーションのように変化するナビゲーション「Fancy Navigation」の設定の仕方
Mootoolsを使ったナビゲーション、
「Fancy Navigation with MooTools Javascript」
というのがあったので試しに使ってみた。
ところがそこにのっているままの設定だと、
ちょっとだけチラついた動作があるだけで、
Demoでのっているような動きをみせてくれない。
なんでだ?
と思って試したら、書いてある設定が足りなかっただけみたいなので、
それもあわせて書いておきます。
設定方法
基本的に、オリジナルのサイトで書いてある通りです。
■HTML
<ul> <li><a href="#" class="nav">Nav Item 1</a></li> <li><a href="#" class="nav">Nav Item 2</a></li> <li><a href="#" class="nav">Nav Item 3</a></li> <li><a href="#" class="nav">Nav Item 4</a></li> <li><a href="#" class="nav">Nav Item 5</a></li> <li><a href="#" class="nav">Nav Item 6</a></li> <li><a href="#" class="nav">Nav Item 7</a></li> <li><a href="#" class="nav">Nav Item 8</a></li> <li><a href="#" class="nav">Nav Item 9</a></li> <li><a href="#" class="nav">Nav Item 10</a></li> </ul>
■CSS
今日一番のポイントはこのCSSの設定。
必要なのは:hoverの設定!
a.nav{ display: block; padding: 10px; color: #ddd; background: #000; width: 200px; text-decoration: none; border-bottom:1px solid #ddd; } a.nav:hover{ color: #000; background: #eee; text-decoration: none; }
hoverしたときのbackgroundを指定しておかないと、
綺麗なグラデーションが起こらない。
話ずれずに設定しよう。
■JavaScript
先にMootoolsを読み込んでから下記のスクリプトを記述します。
window.addEvent('domready', function() { $each($$('a.nav'),function(el) { el.addEvent('mouseenter', function() { el.highlight(el.getStyle('background-color'),'#333'); }); el.addEvent('mouseleave', function() { el.highlight(el.getStyle('background-color'),'#000'); }); }); });
IE6はスムーズではない
IE6だとなんだかうまくグラデーションしない様子。
一応動作はするけど、スムーズではないみたいだ。
ただ、他のブラウザではどれも綺麗ですし、
IE6も動作しないわけではないので、
設定しても特に問題はないと言えるでしょう。