I’m looking at http://voky.com.ua/showcase/sky-mega-menu/examples/demo-personal.html and I can’t figure out what is making the subnavs expand. For example, hover over “Portfolio” and see the subnav expand. I’ve inspected all the elements around the nav items and I can’t find any CSS3 transition
and I also can’t see Javascript adding any style
attributes to the elements or adding any classes.
Advertisement
Answer
There are two parts to this;
The expanding effect is achieved by setting the scale
property to (0,0)
when the menu is closed and then (1,1)
when its visible, and having a transition
property for the animating timing. Here are the relevant lines;
/* line 60 */
.sky-mega-menu li > div {
-o-transition: -o-transform 0.4s, opacity 0.4s;
-ms-transition: -ms-transform 0.4s, opacity 0.4s;
-moz-transition: -moz-transform 0.4s, opacity 0.4s;
-webkit-transition: -webkit-transform 0.4s, opacity 0.4s;
}
/* line 374 */
.sky-mega-menu-anim-scale li > div {
-o-transform: scale(0, 0);
-ms-transform: scale(0, 0);
-moz-transform: scale(0, 0);
-webkit-transform: scale(0, 0);
}
/* line 380 */
.sky-mega-menu-anim-scale li:hover > div {
-o-transform: scale(1, 1);
-ms-transform: scale(1, 1);
-moz-transform: scale(1, 1);
-webkit-transform: scale(1, 1);
}
The visibility of the submenu on hover is achieved by setting it’s opacity
to 0 and then 1 when you hover on the respective li
/* line 60 */
.sky-mega-menu li > div {
opacity: 0;
}
/* line 101 */
.sky-mega-menu li:hover > div {
opacity: 1;
}