はじめに
今回学習したいことはプルダウンメニューです。
webサイトを作成したい、デザインを勉強したいなら必ず習得したいギミックが
このプルダウンには仕組まれています。
早速どんな動きなのか見ていきましょう。
プルダウンメニューの扱い
まずは、こちらにアクセスしていただき、実際の
プルダウンメニューをご覧ください。
実際のソースコードがこちらになります!
<htmlのコード>
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" href="./style.css" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <title>Document</title> </head> <body> <nav> <ul class="dropdwn"> <li> ホバーしてみよう <ul class="dropdwn_menu"> <li><a href="#">名前</a></li> <li><a href="#">性別</a></li> <li><a href="#">住所</a></li> <li><a href="#">電話番号</a></li> </ul> </li> </ul> </nav> <script> $(".dropdwn li").hover( function () { $(".dropdwn_menu:not(:animated)", this).slideDown(); }, function () { $(".dropdwn_menu", this).slideUp(); } ); </script> </body> </html>
<CSSのコード>
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } /* HTML5 display-role reset for older browsers */ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; } body { line-height: 1; } ol, ul { list-style: none; } blockquote, q { quotes: none; } blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; } table { border-collapse: collapse; border-spacing: 0; } .dropdwn{ max-width: 1200px; display: flex; } ul{ text-align: center; list-style-type: none; margin: 0 auto; padding: 0; color: #fff; } li{ max-width: calc(1200px/5); position: relative; padding: 5px; display: block; cursor: pointer; } .dropdwn>li{ width: 1200px; margin: 1px; background: rgb(41, 41, 240); display: inline; } .dropdwn_menu{ width: 100%; display: none; position: absolute; margin-left: -5px; margin-top: 5px; padding: 0; background: rgb(75, 100, 209); } .dropdwn_menu li{ width: 100%; } .dropdwn_menu li a{ padding: 5px 0; margin: -5px 5px -5px -5px; display: block; color: #fff; } li a:hover{ background: rgb(41, 41, 240); color: white; }
webサイトとかで見たことがあるという方が多いと思います。
ここで重要なところは三つあります。
①.slideUpメソッドと.slideDownメソッドの機能を知る。
②:not(:animated)の作用を知る。
③少し前に学習したことを使ってみましょう!
:not(:animated)の作用
このコードはみたことない人も結構いるんじゃないかなと思います。
アニメーションしていない時に命令を受け付けるコードです。
つまりスライドが表示されてから消えるまでの間は次の指示を受け付けないということです。
メソッドチェーンを使ってみよう
この部分をメソッドチェーンに作り変えてみましょう!ここで学んだプルダウンの
エフェクトはこんな物が作れるんだ程度に理解していれば問題ございません。
はじめにご覧いただいたプルダウンについて理解したら、
色を変えてみたり、動きの速度を遅くしてみたり早くしてみたり…
色々な工夫を自分なりに加えてみてください!