Trong bài hướng dẫn này, chúng tôi muốn chia sẻ đến các bạn một Drop Menu. Chúng tiết kiệm không gian cho các menu có nhiều nội dung.
Cấu trúc của menu như sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | < div id = "dl-menu" class = "dl-menuwrapper" > < button class = "dl-trigger" >Open Menu</ button > < ul class = "dl-menu" > < li >< a href = "#" >Item 1</ a > < ul class = "dl-submenu" > < li >< a href = "#" >Sub-Item 1</ a ></ li > < li >< a href = "#" >Sub-Item 2</ a ></ li > < li >< a href = "#" >Sub-Item 3</ a ></ li > < li >< a href = "#" >Sub-Item 4</ a > < ul class = "dl-submenu" > < li >< a href = "#" >Sub-Sub-Item 1</ a ></ li > < li >< a href = "#" >Sub-Sub-Item 2</ a ></ li > < li >< a href = "#" >Sub-Sub-Item 3</ a ></ li > </ ul > </ li > < li > <!-- ... --> </ li > </ ul > </ li > < li > <!-- ... --> </ li > < li > <!-- ... --> </ li > <!-- ... --> </ ul > </ div > <!-- /dl-menuwrapper --> |
Cấu hình CSS làm chuyển động như sau:
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 32 33 34 35 36 | .dl-menu.dl-animate-out -1 { animation : MenuAnimOut 1 0.4 s linear forwards; } @keyframes MenuAnimOut 1 { 50% { transform : translateZ( -250px ) rotateY( 30 deg); } 75% { transform : translateZ( -372.5px ) rotateY( 15 deg); opacity : . 5 ; } 100% { transform : translateZ( -500px ) rotateY( 0 deg); opacity : 0 ; } } .dl-menu.dl-animate-in -1 { animation : MenuAnimIn 1 0.3 s linear forwards; } @keyframes MenuAnimIn 1 { 0% { transform : translateZ( -500px ) rotateY( 0 deg); opacity : 0 ; } 20% { transform : translateZ( -250px ) rotateY( 30 deg); opacity : 0.5 ; } 100% { transform : translateZ( 0px ) rotateY( 0 deg); opacity : 1 ; } } |
Thêm plugin jQuery và gọi thực hiện:
1 2 3 4 5 6 | $( '#dl-menu' ).dlmenu({ animationClasses : { classin : 'animation-class-name' , classout : 'animation-class-name' } }); |