jQuery

Javascript,jQuery スマートフォン

【JS】マウスオーバーでブロックごとスライドしてくるナビゲーションバーをjQueryで組んでみた

2018/09/08

ナビゲーションで、マウスオーバーすると画面外に隠れていたナビバー、HTMLでいうところの、liタグで出来た部分がにゅっと出てくるスクリプトは調べていていくつか見たのですが、メニュー部分そのもの(HTMLでいうところのULタグ)が出てくるってのは見かけなかったので、自分で作ってみました。

ブロックごと出現させる利点は、一回のマウスオーバーである程度の数のナビゲーションを一度に見せることが出来る点。「どのメニューだったっけな」と、全てのバーに対しマウスオーバーさせ「探させる」事が無くなったかな、と思っています。

マウスオーバーするとブロックごとスライドしてくるメニューバー

イメージ

おなじみ、よくわからないイメージ。

tgHoverMenubarイメージ

各種コード

HTML

ではソースコードのお披露目。
単純に、ナビゲーションとメインコンテンツ部分を書いています。

CSS

次に、CSS。
ちょっと長いですが、基本的に、ナビゲーション部分の調整です。

JavaScript

では、最後にJavascript。

これだけでOKです。

読み込んだ時と、マウスアウト時に、#navigation 部分を、margin-left:-150px する、といった内容です。
jQuery で書く時は、「margin-left」は「marginLeft」と書きます。

position を fixed にしているので、スクロールしても位置はそのままです。

知っての通り、IE6では position:fixed は効きませんが、IE6なんて使っている人はもう居ないと思いたいですし、IE6対応に工数をとられるのも馬鹿らしいと思うので、個人的は無視してもいいユーザだと思います。

デモ1

デモはこちらから。

アレンジ版

少しアレンジしてみます。
HTMLは同じで、CSS と JS部分を変えてみます。

CSS

ナビゲーションに画像を使い、マウスオーバー時の背景色に透明度を使うなどしています。

Javascript

こちらは、margin-left の数値が 50px となっているだけです。

デモ2

デモ2はコチラから

IEで見た場合、マウスオーバー時の背景色が角丸にならず、少し残念な事になりますが、リンク部分が背景画像を用いたものになり、見た目的にも良い感じの形となりました。

関連するポスト

【JS】ハンバーガーメニューをjQueryとCSSで作成する方法

-Javascript,jQuery, スマートフォン
-,