first commit
@@ -0,0 +1,119 @@
|
||||
.wsmenu > .wsmenu-list > li > ul.sub-menu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-o-transform-origin: 0% 0%;
|
||||
-ms-transform-origin: 0% 0%;
|
||||
-moz-transform-origin: 0% 0%;
|
||||
-webkit-transform-origin: 0% 0%;
|
||||
-o-transition: -o-transform 0.3s, opacity 0.3s;
|
||||
-ms-transition: -ms-transform 0.3s, opacity 0.3s;
|
||||
-moz-transition: -moz-transform 0.3s, opacity 0.3s;
|
||||
-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
|
||||
transform-style: preserve-3d;
|
||||
-o-transform-style: preserve-3d;
|
||||
-moz-transform-style: preserve-3d;
|
||||
-webkit-transform-style: preserve-3d;
|
||||
transform: rotateX(-75deg);
|
||||
-o-transform: rotateX(-75deg);
|
||||
-moz-transform: rotateX(-75deg);
|
||||
-webkit-transform: rotateX(-75deg);
|
||||
}
|
||||
|
||||
.wsmenu > .wsmenu-list > li:hover > ul.sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-webkit-transform: rotateX(0deg);
|
||||
}
|
||||
|
||||
.wsmenu > .wsmenu-list > li > ul.sub-menu > li > ul.sub-menu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
transform-style: preserve-3d;
|
||||
-o-transform-style: preserve-3d;
|
||||
-moz-transform-style: preserve-3d;
|
||||
-webkit-transform-style: preserve-3d;
|
||||
transform: rotateX(-75deg);
|
||||
-o-transform: rotateX(-75deg);
|
||||
-moz-transform: rotateX(-75deg);
|
||||
-webkit-transform: rotateX(-75deg);
|
||||
}
|
||||
|
||||
.wsmenu > .wsmenu-list > li > ul.sub-menu > li:hover > ul.sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
-o-transform-origin: 0% 0%;
|
||||
-ms-transform-origin: 0% 0%;
|
||||
-moz-transform-origin: 0% 0%;
|
||||
-webkit-transform-origin: 0% 0%;
|
||||
-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;
|
||||
transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-webkit-transform: rotateX(0deg);
|
||||
}
|
||||
|
||||
.wsmenu > .wsmenu-list > li > ul.sub-menu > li > ul.sub-menu > li > ul.sub-menu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-o-transform-origin: 0% 0%;
|
||||
-ms-transform-origin: 0% 0%;
|
||||
-moz-transform-origin: 0% 0%;
|
||||
-webkit-transform-origin: 0% 0%;
|
||||
-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;
|
||||
transform-style: preserve-3d;
|
||||
-o-transform-style: preserve-3d;
|
||||
-moz-transform-style: preserve-3d;
|
||||
-webkit-transform-style: preserve-3d;
|
||||
transform: rotateX(-75deg);
|
||||
-o-transform: rotateX(-75deg);
|
||||
-moz-transform: rotateX(-75deg);
|
||||
-webkit-transform: rotateX(-75deg);
|
||||
}
|
||||
|
||||
.wsmenu > .wsmenu-list > li > ul.sub-menu > li > ul.sub-menu > li:hover > ul.sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-webkit-transform: rotateX(0deg);
|
||||
}
|
||||
|
||||
.wsmenu > .wsmenu-list > li > .wsmegamenu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-o-transform-origin: 0% 0%;
|
||||
-ms-transform-origin: 0% 0%;
|
||||
-moz-transform-origin: 0% 0%;
|
||||
-webkit-transform-origin: 0% 0%;
|
||||
-o-transition: -o-transform 0.3s, opacity 0.3s;
|
||||
-ms-transition: -ms-transform 0.3s, opacity 0.3s;
|
||||
-moz-transition: -moz-transform 0.3s, opacity 0.3s;
|
||||
-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
|
||||
transform-style: preserve-3d;
|
||||
-o-transform-style: preserve-3d;
|
||||
-moz-transform-style: preserve-3d;
|
||||
-webkit-transform-style: preserve-3d;
|
||||
transform: rotateX(-75deg);
|
||||
-o-transform: rotateX(-75deg);
|
||||
-moz-transform: rotateX(-75deg);
|
||||
-webkit-transform: rotateX(-75deg);
|
||||
}
|
||||
|
||||
.wsmenu > .wsmenu-list > li:hover > .wsmegamenu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-webkit-transform: rotateX(0deg);
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-webkit-transform-origin: center center;
|
||||
-moz-transform-origin: center center;
|
||||
-ms-transform-origin: center center;
|
||||
-o-transform-origin: center center;
|
||||
transform-origin: center center;
|
||||
-webkit-transform: translateX(40px) skewX(7deg);
|
||||
-moz-transform: translateX(40px) skewX(7deg);
|
||||
-ms-transform: translateX(40px) skewX(7deg);
|
||||
-o-transform: translateX(40px) skewX(7deg);
|
||||
transform: translateX(40px) skewX(7deg);
|
||||
-o-transition: -o-transform 0.3s, opacity 0.3s;
|
||||
-ms-transition: -ms-transform 0.3s, opacity 0.3s;
|
||||
-moz-transition: -moz-transform 0.3s, opacity 0.3s;
|
||||
-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li:hover>ul.sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
-webkit-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-ms-transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu>li>ul.sub-menu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-webkit-transform-origin: center center;
|
||||
-moz-transform-origin: center center;
|
||||
-ms-transform-origin: center center;
|
||||
-o-transform-origin: center center;
|
||||
transform-origin: center center;
|
||||
-webkit-transform: translateX(40px) skewX(7deg);
|
||||
-moz-transform: translateX(40px) skewX(7deg);
|
||||
-ms-transform: translateX(40px) skewX(7deg);
|
||||
-o-transform: translateX(40px) skewX(7deg);
|
||||
transform: translateX(40px) skewX(7deg);
|
||||
-o-transition: -o-transform 0.3s, opacity 0.3s;
|
||||
-ms-transition: -ms-transform 0.3s, opacity 0.3s;
|
||||
-moz-transition: -moz-transform 0.3s, opacity 0.3s;
|
||||
-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu>li:hover>ul.sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
-webkit-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-ms-transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu>li>ul.sub-menu>li>ul.sub-menu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-webkit-transform-origin: center center;
|
||||
-moz-transform-origin: center center;
|
||||
-ms-transform-origin: center center;
|
||||
-o-transform-origin: center center;
|
||||
transform-origin: center center;
|
||||
-webkit-transform: translateX(40px) skewX(7deg);
|
||||
-moz-transform: translateX(40px) skewX(7deg);
|
||||
-ms-transform: translateX(40px) skewX(7deg);
|
||||
-o-transform: translateX(40px) skewX(7deg);
|
||||
transform: translateX(40px) skewX(7deg);
|
||||
-o-transition: -o-transform 0.3s, opacity 0.3s;
|
||||
-ms-transition: -ms-transform 0.3s, opacity 0.3s;
|
||||
-moz-transition: -moz-transform 0.3s, opacity 0.3s;
|
||||
-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu>li>ul.sub-menu>li:hover>ul.sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
-webkit-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-ms-transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>.wsmegamenu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-webkit-transform-origin: center center;
|
||||
-moz-transform-origin: center center;
|
||||
-ms-transform-origin: center center;
|
||||
-o-transform-origin: center center;
|
||||
transform-origin: center center;
|
||||
-webkit-transform: translateX(40px) skewX(7deg);
|
||||
-moz-transform: translateX(40px) skewX(7deg);
|
||||
-ms-transform: translateX(40px) skewX(7deg);
|
||||
-o-transform: translateX(40px) skewX(7deg);
|
||||
transform: translateX(40px) skewX(7deg);
|
||||
-o-transition: -o-transform 0.3s, opacity 0.3s;
|
||||
-ms-transition: -ms-transform 0.3s, opacity 0.3s;
|
||||
-moz-transition: -moz-transform 0.3s, opacity 0.3s;
|
||||
-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li:hover>.wsmegamenu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
-webkit-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-ms-transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-webkit-transform-origin: center center;
|
||||
-moz-transform-origin: center center;
|
||||
-ms-transform-origin: center center;
|
||||
-o-transform-origin: center center;
|
||||
transform-origin: center center;
|
||||
-webkit-transform: translateX(-40px) skewX(-7deg);
|
||||
-moz-transform: translateX(-40px) skewX(-7deg);
|
||||
-ms-transform: translateX(-40px) skewX(-7deg);
|
||||
-o-transform: translateX(-40px) skewX(-7deg);
|
||||
transform: translateX(-40px) skewX(-7deg);
|
||||
-o-transition: -o-transform 0.3s, opacity 0.3s;
|
||||
-ms-transition: -ms-transform 0.3s, opacity 0.3s;
|
||||
-moz-transition: -moz-transform 0.3s, opacity 0.3s;
|
||||
-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li:hover>ul.sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
-webkit-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-ms-transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu>li>ul.sub-menu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-webkit-transform-origin: center center;
|
||||
-moz-transform-origin: center center;
|
||||
-ms-transform-origin: center center;
|
||||
-o-transform-origin: center center;
|
||||
transform-origin: center center;
|
||||
-webkit-transform: translateX(-40px) skewX(-7deg);
|
||||
-moz-transform: translateX(-40px) skewX(-7deg);
|
||||
-ms-transform: translateX(-40px) skewX(-7deg);
|
||||
-o-transform: translateX(-40px) skewX(-7deg);
|
||||
transform: translateX(-40px) skewX(-7deg);
|
||||
-o-transition: -o-transform 0.3s, opacity 0.3s;
|
||||
-ms-transition: -ms-transform 0.3s, opacity 0.3s;
|
||||
-moz-transition: -moz-transform 0.3s, opacity 0.3s;
|
||||
-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu>li:hover>ul.sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
-webkit-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-ms-transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu>li>ul.sub-menu>li>ul.sub-menu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-webkit-transform-origin: center center;
|
||||
-moz-transform-origin: center center;
|
||||
-ms-transform-origin: center center;
|
||||
-o-transform-origin: center center;
|
||||
transform-origin: center center;
|
||||
-webkit-transform: translateX(-40px) skewX(-7deg);
|
||||
-moz-transform: translateX(-40px) skewX(-7deg);
|
||||
-ms-transform: translateX(-40px) skewX(-7deg);
|
||||
-o-transform: translateX(-40px) skewX(-7deg);
|
||||
transform: translateX(-40px) skewX(-7deg);
|
||||
-o-transition: -o-transform 0.3s, opacity 0.3s;
|
||||
-ms-transition: -ms-transform 0.3s, opacity 0.3s;
|
||||
-moz-transition: -moz-transform 0.3s, opacity 0.3s;
|
||||
-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu>li>ul.sub-menu>li:hover>ul.sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
-webkit-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-ms-transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>.wsmegamenu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-webkit-transform-origin: center center;
|
||||
-moz-transform-origin: center center;
|
||||
-ms-transform-origin: center center;
|
||||
-o-transform-origin: center center;
|
||||
transform-origin: center center;
|
||||
-webkit-transform: translateX(-40px) skewX(-7deg);
|
||||
-moz-transform: translateX(-40px) skewX(-7deg);
|
||||
-ms-transform: translateX(-40px) skewX(-7deg);
|
||||
-o-transform: translateX(-40px) skewX(-7deg);
|
||||
transform: translateX(-40px) skewX(-7deg);
|
||||
-o-transition: -o-transform 0.3s, opacity 0.3s;
|
||||
-ms-transition: -ms-transform 0.3s, opacity 0.3s;
|
||||
-moz-transition: -moz-transform 0.3s, opacity 0.3s;
|
||||
-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li:hover>.wsmegamenu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
-webkit-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-ms-transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-webkit-transform-origin: center center;
|
||||
-moz-transform-origin: center center;
|
||||
-ms-transform-origin: center center;
|
||||
-o-transform-origin: center center;
|
||||
transform-origin: center center;
|
||||
-webkit-transform: translateY(20px);
|
||||
-moz-transform: translateY(20px);
|
||||
-ms-transform: translateY(20px);
|
||||
-o-transform: translateY(20px);
|
||||
transform: translateY(20px);
|
||||
-o-transition: -o-transform 0.3s, opacity 0.3s;
|
||||
-ms-transition: -ms-transform 0.3s, opacity 0.3s;
|
||||
-moz-transition: -moz-transform 0.3s, opacity 0.3s;
|
||||
-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li:hover>ul.sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
-webkit-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-ms-transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu>li>ul.sub-menu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-webkit-transform-origin: center center;
|
||||
-moz-transform-origin: center center;
|
||||
-ms-transform-origin: center center;
|
||||
-o-transform-origin: center center;
|
||||
transform-origin: center center;
|
||||
-webkit-transform: translateY(20px);
|
||||
-moz-transform: translateY(20px);
|
||||
-ms-transform: translateY(20px);
|
||||
-o-transform: translateY(20px);
|
||||
transform: translateY(20px);
|
||||
-o-transition: -o-transform 0.3s, opacity 0.3s;
|
||||
-ms-transition: -ms-transform 0.3s, opacity 0.3s;
|
||||
-moz-transition: -moz-transform 0.3s, opacity 0.3s;
|
||||
-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu>li:hover>ul.sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
-webkit-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-ms-transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu>li>ul.sub-menu>li>ul.sub-menu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-webkit-transform-origin: center center;
|
||||
-moz-transform-origin: center center;
|
||||
-ms-transform-origin: center center;
|
||||
-o-transform-origin: center center;
|
||||
transform-origin: center center;
|
||||
-webkit-transform: translateY(20px);
|
||||
-moz-transform: translateY(20px);
|
||||
-ms-transform: translateY(20px);
|
||||
-o-transform: translateY(20px);
|
||||
transform: translateY(20px);
|
||||
-o-transition: -o-transform 0.3s, opacity 0.3s;
|
||||
-ms-transition: -ms-transform 0.3s, opacity 0.3s;
|
||||
-moz-transition: -moz-transform 0.3s, opacity 0.3s;
|
||||
-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu>li>ul.sub-menu>li:hover>ul.sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
-webkit-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-ms-transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>.wsmegamenu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-webkit-transform-origin: center center;
|
||||
-moz-transform-origin: center center;
|
||||
-ms-transform-origin: center center;
|
||||
-o-transform-origin: center center;
|
||||
transform-origin: center center;
|
||||
-webkit-transform: translateY(20px);
|
||||
-moz-transform: translateY(20px);
|
||||
-ms-transform: translateY(20px);
|
||||
-o-transform: translateY(20px);
|
||||
transform: translateY(20px);
|
||||
-o-transition: -o-transform 0.3s, opacity 0.3s;
|
||||
-ms-transition: -ms-transform 0.3s, opacity 0.3s;
|
||||
-moz-transition: -moz-transform 0.3s, opacity 0.3s;
|
||||
-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li:hover>.wsmegamenu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
-webkit-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-ms-transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-webkit-transform: rotateY(-90deg);
|
||||
-moz-transform: rotateY(-90deg);
|
||||
-ms-transform: rotateY(-90deg);
|
||||
-o-transform: rotateY(-90deg);
|
||||
transform: rotateY(-90deg);
|
||||
-webkit-transition: all 0.3s ease-in, opacity 0.2s linear;
|
||||
-moz-transition: all 0.3s ease-in, opacity 0.2s linear;
|
||||
transition: all 0.3s ease-in, opacity 0.2s linear;
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li:hover>ul.sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
-webkit-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-ms-transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu>li>ul.sub-menu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-webkit-transform: rotateY(-90deg);
|
||||
-moz-transform: rotateY(-90deg);
|
||||
-ms-transform: rotateY(-90deg);
|
||||
-o-transform: rotateY(-90deg);
|
||||
transform: rotateY(-90deg);
|
||||
-webkit-transition: all 0.3s ease-in, opacity 0.2s linear;
|
||||
-moz-transition: all 0.3s ease-in, opacity 0.2s linear;
|
||||
transition: all 0.3s ease-in, opacity 0.2s linear;
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu>li:hover>ul.sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
-webkit-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-ms-transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu>li>ul.sub-menu>li>ul.sub-menu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-webkit-transform: rotateY(-90deg);
|
||||
-moz-transform: rotateY(-90deg);
|
||||
-ms-transform: rotateY(-90deg);
|
||||
-o-transform: rotateY(-90deg);
|
||||
transform: rotateY(-90deg);
|
||||
-webkit-transition: all 0.3s ease-in, opacity 0.2s linear;
|
||||
-moz-transition: all 0.3s ease-in, opacity 0.2s linear;
|
||||
transition: all 0.3s ease-in, opacity 0.2s linear;
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu>li>ul.sub-menu>li:hover>ul.sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
-webkit-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-ms-transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>.wsmegamenu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-webkit-transform: rotateY(-90deg);
|
||||
-moz-transform: rotateY(-90deg);
|
||||
-ms-transform: rotateY(-90deg);
|
||||
-o-transform: rotateY(-90deg);
|
||||
transform: rotateY(-90deg);
|
||||
-webkit-transition: all 0.3s ease-in, opacity 0.2s linear;
|
||||
-moz-transition: all 0.3s ease-in, opacity 0.2s linear;
|
||||
transition: all 0.3s ease-in, opacity 0.2s linear;
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li:hover>.wsmegamenu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
-webkit-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-ms-transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-webkit-transform: perspective(400) rotate3d(1, 0, 0, -90deg);
|
||||
-webkit-transform-origin: 50% 0;
|
||||
-moz-transition: 300ms;
|
||||
-o-transition: 300ms;
|
||||
transition: 300ms;
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li:hover>ul.sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
max-height: 1000px;
|
||||
-webkit-transform: perspective(400) rotate3d(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu>li>ul.sub-menu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
transform-style: preserve-3d;
|
||||
-o-transform-style: preserve-3d;
|
||||
-moz-transform-style: preserve-3d;
|
||||
-webkit-transform-style: preserve-3d;
|
||||
transform: rotateX(-75deg);
|
||||
-o-transform: rotateX(-75deg);
|
||||
-moz-transform: rotateX(-75deg);
|
||||
-webkit-transform: rotateX(-75deg);
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu>li:hover>ul.sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
-o-transform-origin: 0% 0%;
|
||||
-ms-transform-origin: 0% 0%;
|
||||
-moz-transform-origin: 0% 0%;
|
||||
-webkit-transform-origin: 0% 0%;
|
||||
-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;
|
||||
transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-webkit-transform: rotateX(0deg);
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu>li>ul.sub-menu>li>ul.sub-menu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-o-transform-origin: 0% 0%;
|
||||
-ms-transform-origin: 0% 0%;
|
||||
-moz-transform-origin: 0% 0%;
|
||||
-webkit-transform-origin: 0% 0%;
|
||||
-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;
|
||||
transform-style: preserve-3d;
|
||||
-o-transform-style: preserve-3d;
|
||||
-moz-transform-style: preserve-3d;
|
||||
-webkit-transform-style: preserve-3d;
|
||||
transform: rotateX(-75deg);
|
||||
-o-transform: rotateX(-75deg);
|
||||
-moz-transform: rotateX(-75deg);
|
||||
-webkit-transform: rotateX(-75deg);
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>ul.sub-menu>li>ul.sub-menu>li:hover>ul.sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
transform: rotateX(0deg);
|
||||
-o-transform: rotateX(0deg);
|
||||
-moz-transform: rotateX(0deg);
|
||||
-webkit-transform: rotateX(0deg);
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li>.wsmegamenu {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-webkit-transform: perspective(400) rotate3d(1, 0, 0, -90deg);
|
||||
-webkit-transform-origin: 50% 0;
|
||||
-moz-transition: 300ms;
|
||||
-o-transition: 300ms;
|
||||
transition: 300ms;
|
||||
}
|
||||
|
||||
.wsmenu>.wsmenu-list>li:hover>.wsmegamenu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
max-height: 1000px;
|
||||
-webkit-transform: perspective(400) rotate3d(0, 0, 0, 0);
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
|
||||
@font-face {
|
||||
font-family: 'Google Sans';
|
||||
src: url('../fonts/GoogleSans-Bold.eot');
|
||||
src: local('../fonts/Google Sans Bold'), local('GoogleSans-Bold'),
|
||||
url('../fonts/GoogleSans-Bold.eot?#iefix') format('embedded-opentype'),
|
||||
url('../fonts/GoogleSans-Bold.woff2') format('woff2'),
|
||||
url('../fonts/GoogleSans-Bold.woff') format('woff'),
|
||||
url('../fonts/GoogleSans-Bold.ttf') format('truetype');
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Google Sans';
|
||||
src: url('../fonts/GoogleSans-Medium.eot');
|
||||
src: local('../fonts/Google Sans Medium'), local('GoogleSans-Medium'),
|
||||
url('../fonts/GoogleSans-Medium.eot?#iefix') format('embedded-opentype'),
|
||||
url('../fonts/GoogleSans-Medium.woff2') format('woff2'),
|
||||
url('../fonts/GoogleSans-Medium.woff') format('woff'),
|
||||
url('../fonts/GoogleSans-Medium.ttf') format('truetype');
|
||||
font-weight: 500;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Google Sans';
|
||||
src: url('../fonts/GoogleSans-Regular.eot');
|
||||
src: local('../fonts/Google Sans Regular'), local('GoogleSans-Regular'),
|
||||
url('../fonts/GoogleSans-Regular.eot?#iefix') format('embedded-opentype'),
|
||||
url('../fonts/GoogleSans-Regular.woff2') format('woff2'),
|
||||
url('../fonts/GoogleSans-Regular.woff') format('woff'),
|
||||
url('../fonts/GoogleSans-Regular.ttf') format('truetype');
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,125 @@
|
||||
@font-face {
|
||||
font-family: "flaticon";
|
||||
src: url("./flaticon.ttf?b1e64bd9d0599fb4d9d8703145551505") format("truetype"),
|
||||
url("./flaticon.woff?b1e64bd9d0599fb4d9d8703145551505") format("woff"),
|
||||
url("./flaticon.woff2?b1e64bd9d0599fb4d9d8703145551505") format("woff2"),
|
||||
url("./flaticon.eot?b1e64bd9d0599fb4d9d8703145551505#iefix") format("embedded-opentype"),
|
||||
url("./flaticon.svg?b1e64bd9d0599fb4d9d8703145551505#flaticon") format("svg");
|
||||
}
|
||||
|
||||
span[class^="flaticon-"]:before, span[class*=" flaticon-"]:before {
|
||||
font-family: flaticon !important;
|
||||
font-style: normal;
|
||||
font-weight: normal !important;
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
line-height: 1;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.flaticon-ads:before {
|
||||
content: "\f101";
|
||||
}
|
||||
.flaticon-background:before {
|
||||
content: "\f102";
|
||||
}
|
||||
.flaticon-brickwall:before {
|
||||
content: "\f103";
|
||||
}
|
||||
.flaticon-browser-1:before {
|
||||
content: "\f104";
|
||||
}
|
||||
.flaticon-browser-2:before {
|
||||
content: "\f105";
|
||||
}
|
||||
.flaticon-browser-3:before {
|
||||
content: "\f106";
|
||||
}
|
||||
.flaticon-browser-4:before {
|
||||
content: "\f107";
|
||||
}
|
||||
.flaticon-browser-5:before {
|
||||
content: "\f108";
|
||||
}
|
||||
.flaticon-browser-6:before {
|
||||
content: "\f109";
|
||||
}
|
||||
.flaticon-browser-7:before {
|
||||
content: "\f10a";
|
||||
}
|
||||
.flaticon-browser-8:before {
|
||||
content: "\f10b";
|
||||
}
|
||||
.flaticon-browser:before {
|
||||
content: "\f10c";
|
||||
}
|
||||
.flaticon-brush:before {
|
||||
content: "\f10d";
|
||||
}
|
||||
.flaticon-controls:before {
|
||||
content: "\f10e";
|
||||
}
|
||||
.flaticon-development:before {
|
||||
content: "\f10f";
|
||||
}
|
||||
.flaticon-heart-shape-outline:before {
|
||||
content: "\f110";
|
||||
}
|
||||
.flaticon-heart-shape-silhouette:before {
|
||||
content: "\f111";
|
||||
}
|
||||
.flaticon-layers-1:before {
|
||||
content: "\f112";
|
||||
}
|
||||
.flaticon-layers:before {
|
||||
content: "\f113";
|
||||
}
|
||||
.flaticon-manufacturing:before {
|
||||
content: "\f114";
|
||||
}
|
||||
.flaticon-pantone:before {
|
||||
content: "\f115";
|
||||
}
|
||||
.flaticon-resize:before {
|
||||
content: "\f116";
|
||||
}
|
||||
.flaticon-responsive-1:before {
|
||||
content: "\f117";
|
||||
}
|
||||
.flaticon-responsive:before {
|
||||
content: "\f118";
|
||||
}
|
||||
.flaticon-rule-of-thirds:before {
|
||||
content: "\f119";
|
||||
}
|
||||
.flaticon-scale:before {
|
||||
content: "\f11a";
|
||||
}
|
||||
.flaticon-selection:before {
|
||||
content: "\f11b";
|
||||
}
|
||||
.flaticon-square:before {
|
||||
content: "\f11c";
|
||||
}
|
||||
.flaticon-stationery:before {
|
||||
content: "\f11d";
|
||||
}
|
||||
.flaticon-tools:before {
|
||||
content: "\f11e";
|
||||
}
|
||||
.flaticon-web-browser-1:before {
|
||||
content: "\f11f";
|
||||
}
|
||||
.flaticon-web-browser-2:before {
|
||||
content: "\f120";
|
||||
}
|
||||
.flaticon-web-browser:before {
|
||||
content: "\f121";
|
||||
}
|
||||
.flaticon-windows-1:before {
|
||||
content: "\f122";
|
||||
}
|
||||
.flaticon-windows:before {
|
||||
content: "\f123";
|
||||
}
|
||||
|
After Width: | Height: | Size: 416 KiB |
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 1.9 MiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 110 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 302 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 59 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 59 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 63 KiB |
@@ -0,0 +1,168 @@
|
||||
// JavaScript Document
|
||||
|
||||
|
||||
$(window).on('load', function() {
|
||||
|
||||
"use strict";
|
||||
|
||||
/*----------------------------------------------------*/
|
||||
/* Preloader
|
||||
/*----------------------------------------------------*/
|
||||
|
||||
var preloader = $('#loader-wrapper'),
|
||||
loader = preloader.find('.cssload-loader');
|
||||
loader.fadeOut();
|
||||
preloader.delay(400).fadeOut('slow');
|
||||
|
||||
});
|
||||
|
||||
|
||||
$(window).on('scroll', function() {
|
||||
|
||||
"use strict";
|
||||
|
||||
|
||||
/*----------------------------------------------------*/
|
||||
/* Navigtion Menu Scroll
|
||||
/*----------------------------------------------------*/
|
||||
|
||||
var b = $(window).scrollTop();
|
||||
|
||||
if( b > 80 ){
|
||||
$(".wsmainfull").addClass("scroll");
|
||||
} else {
|
||||
$(".wsmainfull").removeClass("scroll");
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
"use strict";
|
||||
|
||||
/*----------------------------------------------------*/
|
||||
/* Animated Scroll To Anchor
|
||||
/*----------------------------------------------------*/
|
||||
|
||||
$('.header a[href^="#"], #page a.btn[href^="#"]').on('click', function (e) {
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
var target = this.hash,
|
||||
$target = jQuery(target);
|
||||
|
||||
$('html, body').stop().animate({
|
||||
'scrollTop': $target.offset().top - 110 // - 200px (nav-height)
|
||||
}, 'slow', 'easeInSine', function () {
|
||||
window.location.hash = '1' + target;
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
/*----------------------------------------------------*/
|
||||
/* ScrollUp
|
||||
/*----------------------------------------------------*/
|
||||
|
||||
$.scrollUp = function (options) {
|
||||
|
||||
// Defaults
|
||||
var defaults = {
|
||||
scrollName: 'scrollUp', // Element ID
|
||||
topDistance: 600, // Distance from top before showing element (px)
|
||||
topSpeed: 800, // Speed back to top (ms)
|
||||
animation: 'fade', // Fade, slide, none
|
||||
animationInSpeed: 200, // Animation in speed (ms)
|
||||
animationOutSpeed: 200, // Animation out speed (ms)
|
||||
scrollText: '', // Text for element
|
||||
scrollImg: false, // Set true to use image
|
||||
activeOverlay: false // Set CSS color to display scrollUp active point, e.g '#00FFFF'
|
||||
};
|
||||
|
||||
var o = $.extend({}, defaults, options),
|
||||
scrollId = '#' + o.scrollName;
|
||||
|
||||
// Create element
|
||||
$('<a/>', {
|
||||
id: o.scrollName,
|
||||
href: '#top',
|
||||
title: o.scrollText
|
||||
}).appendTo('body');
|
||||
|
||||
// If not using an image display text
|
||||
if (!o.scrollImg) {
|
||||
$(scrollId).text(o.scrollText);
|
||||
}
|
||||
|
||||
// Minium CSS to make the magic happen
|
||||
$(scrollId).css({'display':'none','position': 'fixed','z-index': '2147483647'});
|
||||
|
||||
// Active point overlay
|
||||
if (o.activeOverlay) {
|
||||
$("body").append("<div id='"+ o.scrollName +"-active'></div>");
|
||||
$(scrollId+"-active").css({ 'position': 'absolute', 'top': o.topDistance+'px', 'width': '100%', 'border-top': '1px dotted '+o.activeOverlay, 'z-index': '2147483647' });
|
||||
}
|
||||
|
||||
// Scroll function
|
||||
$(window).on('scroll', function(){
|
||||
switch (o.animation) {
|
||||
case "fade":
|
||||
$( ($(window).scrollTop() > o.topDistance) ? $(scrollId).fadeIn(o.animationInSpeed) : $(scrollId).fadeOut(o.animationOutSpeed) );
|
||||
break;
|
||||
case "slide":
|
||||
$( ($(window).scrollTop() > o.topDistance) ? $(scrollId).slideDown(o.animationInSpeed) : $(scrollId).slideUp(o.animationOutSpeed) );
|
||||
break;
|
||||
default:
|
||||
$( ($(window).scrollTop() > o.topDistance) ? $(scrollId).show(0) : $(scrollId).hide(0) );
|
||||
}
|
||||
});
|
||||
|
||||
// To the top
|
||||
$(scrollId).on('click', function(event){
|
||||
$('html, body').animate({scrollTop:0}, o.topSpeed);
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
$.scrollUp();
|
||||
|
||||
|
||||
/*----------------------------------------------------*/
|
||||
/* Inner Pages Rotator
|
||||
/*----------------------------------------------------*/
|
||||
|
||||
var owl = $('.ipages-holder');
|
||||
owl.owlCarousel({
|
||||
items: 4,
|
||||
loop:true,
|
||||
autoplay:true,
|
||||
navBy: 1,
|
||||
autoplayTimeout: 3000,
|
||||
autoplayHoverPause: false,
|
||||
smartSpeed: 2500,
|
||||
responsive:{
|
||||
0:{
|
||||
items:1
|
||||
},
|
||||
767:{
|
||||
items:2
|
||||
},
|
||||
768:{
|
||||
items:2
|
||||
},
|
||||
991:{
|
||||
items:3
|
||||
},
|
||||
1000:{
|
||||
items:4
|
||||
},
|
||||
1441:{
|
||||
items:4
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
@@ -0,0 +1,322 @@
|
||||
/**
|
||||
* @preserve HTML5 Shiv 3.7.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
|
||||
*/
|
||||
;(function(window, document) {
|
||||
/*jshint evil:true */
|
||||
/** version */
|
||||
var version = '3.7.2';
|
||||
|
||||
/** Preset options */
|
||||
var options = window.html5 || {};
|
||||
|
||||
/** Used to skip problem elements */
|
||||
var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
|
||||
|
||||
/** Not all elements can be cloned in IE **/
|
||||
var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
|
||||
|
||||
/** Detect whether the browser supports default html5 styles */
|
||||
var supportsHtml5Styles;
|
||||
|
||||
/** Name of the expando, to work with multiple documents or to re-shiv one document */
|
||||
var expando = '_html5shiv';
|
||||
|
||||
/** The id for the the documents expando */
|
||||
var expanID = 0;
|
||||
|
||||
/** Cached data for each document */
|
||||
var expandoData = {};
|
||||
|
||||
/** Detect whether the browser supports unknown elements */
|
||||
var supportsUnknownElements;
|
||||
|
||||
(function() {
|
||||
try {
|
||||
var a = document.createElement('a');
|
||||
a.innerHTML = '<xyz></xyz>';
|
||||
//if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
|
||||
supportsHtml5Styles = ('hidden' in a);
|
||||
|
||||
supportsUnknownElements = a.childNodes.length == 1 || (function() {
|
||||
// assign a false positive if unable to shiv
|
||||
(document.createElement)('a');
|
||||
var frag = document.createDocumentFragment();
|
||||
return (
|
||||
typeof frag.cloneNode == 'undefined' ||
|
||||
typeof frag.createDocumentFragment == 'undefined' ||
|
||||
typeof frag.createElement == 'undefined'
|
||||
);
|
||||
}());
|
||||
} catch(e) {
|
||||
// assign a false positive if detection fails => unable to shiv
|
||||
supportsHtml5Styles = true;
|
||||
supportsUnknownElements = true;
|
||||
}
|
||||
|
||||
}());
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* Creates a style sheet with the given CSS text and adds it to the document.
|
||||
* @private
|
||||
* @param {Document} ownerDocument The document.
|
||||
* @param {String} cssText The CSS text.
|
||||
* @returns {StyleSheet} The style element.
|
||||
*/
|
||||
function addStyleSheet(ownerDocument, cssText) {
|
||||
var p = ownerDocument.createElement('p'),
|
||||
parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
|
||||
|
||||
p.innerHTML = 'x<style>' + cssText + '</style>';
|
||||
return parent.insertBefore(p.lastChild, parent.firstChild);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of `html5.elements` as an array.
|
||||
* @private
|
||||
* @returns {Array} An array of shived element node names.
|
||||
*/
|
||||
function getElements() {
|
||||
var elements = html5.elements;
|
||||
return typeof elements == 'string' ? elements.split(' ') : elements;
|
||||
}
|
||||
|
||||
/**
|
||||
* Extends the built-in list of html5 elements
|
||||
* @memberOf html5
|
||||
* @param {String|Array} newElements whitespace separated list or array of new element names to shiv
|
||||
* @param {Document} ownerDocument The context document.
|
||||
*/
|
||||
function addElements(newElements, ownerDocument) {
|
||||
var elements = html5.elements;
|
||||
if(typeof elements != 'string'){
|
||||
elements = elements.join(' ');
|
||||
}
|
||||
if(typeof newElements != 'string'){
|
||||
newElements = newElements.join(' ');
|
||||
}
|
||||
html5.elements = elements +' '+ newElements;
|
||||
shivDocument(ownerDocument);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the data associated to the given document
|
||||
* @private
|
||||
* @param {Document} ownerDocument The document.
|
||||
* @returns {Object} An object of data.
|
||||
*/
|
||||
function getExpandoData(ownerDocument) {
|
||||
var data = expandoData[ownerDocument[expando]];
|
||||
if (!data) {
|
||||
data = {};
|
||||
expanID++;
|
||||
ownerDocument[expando] = expanID;
|
||||
expandoData[expanID] = data;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns a shived element for the given nodeName and document
|
||||
* @memberOf html5
|
||||
* @param {String} nodeName name of the element
|
||||
* @param {Document} ownerDocument The context document.
|
||||
* @returns {Object} The shived element.
|
||||
*/
|
||||
function createElement(nodeName, ownerDocument, data){
|
||||
if (!ownerDocument) {
|
||||
ownerDocument = document;
|
||||
}
|
||||
if(supportsUnknownElements){
|
||||
return ownerDocument.createElement(nodeName);
|
||||
}
|
||||
if (!data) {
|
||||
data = getExpandoData(ownerDocument);
|
||||
}
|
||||
var node;
|
||||
|
||||
if (data.cache[nodeName]) {
|
||||
node = data.cache[nodeName].cloneNode();
|
||||
} else if (saveClones.test(nodeName)) {
|
||||
node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
|
||||
} else {
|
||||
node = data.createElem(nodeName);
|
||||
}
|
||||
|
||||
// Avoid adding some elements to fragments in IE < 9 because
|
||||
// * Attributes like `name` or `type` cannot be set/changed once an element
|
||||
// is inserted into a document/fragment
|
||||
// * Link elements with `src` attributes that are inaccessible, as with
|
||||
// a 403 response, will cause the tab/window to crash
|
||||
// * Script elements appended to fragments will execute when their `src`
|
||||
// or `text` property is set
|
||||
return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns a shived DocumentFragment for the given document
|
||||
* @memberOf html5
|
||||
* @param {Document} ownerDocument The context document.
|
||||
* @returns {Object} The shived DocumentFragment.
|
||||
*/
|
||||
function createDocumentFragment(ownerDocument, data){
|
||||
if (!ownerDocument) {
|
||||
ownerDocument = document;
|
||||
}
|
||||
if(supportsUnknownElements){
|
||||
return ownerDocument.createDocumentFragment();
|
||||
}
|
||||
data = data || getExpandoData(ownerDocument);
|
||||
var clone = data.frag.cloneNode(),
|
||||
i = 0,
|
||||
elems = getElements(),
|
||||
l = elems.length;
|
||||
for(;i<l;i++){
|
||||
clone.createElement(elems[i]);
|
||||
}
|
||||
return clone;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shivs the `createElement` and `createDocumentFragment` methods of the document.
|
||||
* @private
|
||||
* @param {Document|DocumentFragment} ownerDocument The document.
|
||||
* @param {Object} data of the document.
|
||||
*/
|
||||
function shivMethods(ownerDocument, data) {
|
||||
if (!data.cache) {
|
||||
data.cache = {};
|
||||
data.createElem = ownerDocument.createElement;
|
||||
data.createFrag = ownerDocument.createDocumentFragment;
|
||||
data.frag = data.createFrag();
|
||||
}
|
||||
|
||||
|
||||
ownerDocument.createElement = function(nodeName) {
|
||||
//abort shiv
|
||||
if (!html5.shivMethods) {
|
||||
return data.createElem(nodeName);
|
||||
}
|
||||
return createElement(nodeName, ownerDocument, data);
|
||||
};
|
||||
|
||||
ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
|
||||
'var n=f.cloneNode(),c=n.createElement;' +
|
||||
'h.shivMethods&&(' +
|
||||
// unroll the `createElement` calls
|
||||
getElements().join().replace(/[\w\-:]+/g, function(nodeName) {
|
||||
data.createElem(nodeName);
|
||||
data.frag.createElement(nodeName);
|
||||
return 'c("' + nodeName + '")';
|
||||
}) +
|
||||
');return n}'
|
||||
)(html5, data.frag);
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* Shivs the given document.
|
||||
* @memberOf html5
|
||||
* @param {Document} ownerDocument The document to shiv.
|
||||
* @returns {Document} The shived document.
|
||||
*/
|
||||
function shivDocument(ownerDocument) {
|
||||
if (!ownerDocument) {
|
||||
ownerDocument = document;
|
||||
}
|
||||
var data = getExpandoData(ownerDocument);
|
||||
|
||||
if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
|
||||
data.hasCSS = !!addStyleSheet(ownerDocument,
|
||||
// corrects block display not defined in IE6/7/8/9
|
||||
'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
|
||||
// adds styling not present in IE6/7/8/9
|
||||
'mark{background:#FF0;color:#000}' +
|
||||
// hides non-rendered elements
|
||||
'template{display:none}'
|
||||
);
|
||||
}
|
||||
if (!supportsUnknownElements) {
|
||||
shivMethods(ownerDocument, data);
|
||||
}
|
||||
return ownerDocument;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* The `html5` object is exposed so that more elements can be shived and
|
||||
* existing shiving can be detected on iframes.
|
||||
* @type Object
|
||||
* @example
|
||||
*
|
||||
* // options can be changed before the script is included
|
||||
* html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };
|
||||
*/
|
||||
var html5 = {
|
||||
|
||||
/**
|
||||
* An array or space separated string of node names of the elements to shiv.
|
||||
* @memberOf html5
|
||||
* @type Array|String
|
||||
*/
|
||||
'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video',
|
||||
|
||||
/**
|
||||
* current version of html5shiv
|
||||
*/
|
||||
'version': version,
|
||||
|
||||
/**
|
||||
* A flag to indicate that the HTML5 style sheet should be inserted.
|
||||
* @memberOf html5
|
||||
* @type Boolean
|
||||
*/
|
||||
'shivCSS': (options.shivCSS !== false),
|
||||
|
||||
/**
|
||||
* Is equal to true if a browser supports creating unknown/HTML5 elements
|
||||
* @memberOf html5
|
||||
* @type boolean
|
||||
*/
|
||||
'supportsUnknownElements': supportsUnknownElements,
|
||||
|
||||
/**
|
||||
* A flag to indicate that the document's `createElement` and `createDocumentFragment`
|
||||
* methods should be overwritten.
|
||||
* @memberOf html5
|
||||
* @type Boolean
|
||||
*/
|
||||
'shivMethods': (options.shivMethods !== false),
|
||||
|
||||
/**
|
||||
* A string to describe the type of `html5` object ("default" or "default print").
|
||||
* @memberOf html5
|
||||
* @type String
|
||||
*/
|
||||
'type': 'default',
|
||||
|
||||
// shivs the document according to the specified `html5` object options
|
||||
'shivDocument': shivDocument,
|
||||
|
||||
//creates a shived element
|
||||
createElement: createElement,
|
||||
|
||||
//creates a shived documentFragment
|
||||
createDocumentFragment: createDocumentFragment,
|
||||
|
||||
//extends list of elements
|
||||
addElements: addElements
|
||||
};
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
// expose html5
|
||||
window.html5 = html5;
|
||||
|
||||
// shiv the document
|
||||
shivDocument(document);
|
||||
|
||||
}(this, document));
|
||||
@@ -0,0 +1,150 @@
|
||||
/*
|
||||
* jQuery.appear
|
||||
* https://github.com/bas2k/jquery.appear/
|
||||
* http://code.google.com/p/jquery-appear/
|
||||
*
|
||||
* Copyright (c) 2009 Michael Hixson
|
||||
* Copyright (c) 2012 Alexander Brovikov
|
||||
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
|
||||
*/
|
||||
(function($) {
|
||||
$.fn.appear = function(fn, options) {
|
||||
|
||||
var settings = $.extend({
|
||||
|
||||
//arbitrary data to pass to fn
|
||||
data: undefined,
|
||||
|
||||
//call fn only on the first appear?
|
||||
one: true,
|
||||
|
||||
// X & Y accuracy
|
||||
accX: 0,
|
||||
accY: 0
|
||||
|
||||
}, options);
|
||||
|
||||
return this.each(function() {
|
||||
|
||||
var t = $(this);
|
||||
|
||||
//whether the element is currently visible
|
||||
t.appeared = false;
|
||||
|
||||
if (!fn) {
|
||||
|
||||
//trigger the custom event
|
||||
t.trigger('appear', settings.data);
|
||||
return;
|
||||
}
|
||||
|
||||
var w = $(window);
|
||||
|
||||
//fires the appear event when appropriate
|
||||
var check = function() {
|
||||
|
||||
//is the element hidden?
|
||||
if (!t.is(':visible')) {
|
||||
|
||||
//it became hidden
|
||||
t.appeared = false;
|
||||
return;
|
||||
}
|
||||
|
||||
//is the element inside the visible window?
|
||||
var a = w.scrollLeft();
|
||||
var b = w.scrollTop();
|
||||
var o = t.offset();
|
||||
var x = o.left;
|
||||
var y = o.top;
|
||||
|
||||
var ax = settings.accX;
|
||||
var ay = settings.accY;
|
||||
var th = t.height();
|
||||
var wh = w.height();
|
||||
var tw = t.width();
|
||||
var ww = w.width();
|
||||
|
||||
if (y + th + ay >= b &&
|
||||
y <= b + wh + ay &&
|
||||
x + tw + ax >= a &&
|
||||
x <= a + ww + ax) {
|
||||
|
||||
//trigger the custom event
|
||||
if (!t.appeared) t.trigger('appear', settings.data);
|
||||
|
||||
} else {
|
||||
|
||||
//it scrolled out of view
|
||||
t.appeared = false;
|
||||
}
|
||||
};
|
||||
|
||||
//create a modified fn with some additional logic
|
||||
var modifiedFn = function() {
|
||||
|
||||
//mark the element as visible
|
||||
t.appeared = true;
|
||||
|
||||
//is this supposed to happen only once?
|
||||
if (settings.one) {
|
||||
|
||||
//remove the check
|
||||
w.unbind('scroll', check);
|
||||
var i = $.inArray(check, $.fn.appear.checks);
|
||||
if (i >= 0) $.fn.appear.checks.splice(i, 1);
|
||||
}
|
||||
|
||||
//trigger the original fn
|
||||
fn.apply(this, arguments);
|
||||
};
|
||||
|
||||
//bind the modified fn to the element
|
||||
if (settings.one) t.one('appear', settings.data, modifiedFn);
|
||||
else t.bind('appear', settings.data, modifiedFn);
|
||||
|
||||
//check whenever the window scrolls
|
||||
w.scroll(check);
|
||||
|
||||
//check whenever the dom changes
|
||||
$.fn.appear.checks.push(check);
|
||||
|
||||
//check now
|
||||
(check)();
|
||||
});
|
||||
};
|
||||
|
||||
//keep a queue of appearance checks
|
||||
$.extend($.fn.appear, {
|
||||
|
||||
checks: [],
|
||||
timeout: null,
|
||||
|
||||
//process the queue
|
||||
checkAll: function() {
|
||||
var length = $.fn.appear.checks.length;
|
||||
if (length > 0) while (length--) ($.fn.appear.checks[length])();
|
||||
},
|
||||
|
||||
//check the queue asynchronously
|
||||
run: function() {
|
||||
if ($.fn.appear.timeout) clearTimeout($.fn.appear.timeout);
|
||||
$.fn.appear.timeout = setTimeout($.fn.appear.checkAll, 20);
|
||||
}
|
||||
});
|
||||
|
||||
//run checks when these methods are called
|
||||
$.each(['append', 'prepend', 'after', 'before', 'attr',
|
||||
'removeAttr', 'addClass', 'removeClass', 'toggleClass',
|
||||
'remove', 'css', 'show', 'hide'], function(i, n) {
|
||||
var old = $.fn[n];
|
||||
if (old) {
|
||||
$.fn[n] = function() {
|
||||
var r = old.apply(this, arguments);
|
||||
$.fn.appear.run();
|
||||
return r;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,204 @@
|
||||
/*
|
||||
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
|
||||
*
|
||||
* Uses the built in easing capabilities added In jQuery 1.1
|
||||
* to offer multiple easing options
|
||||
*
|
||||
* TERMS OF USE - jQuery Easing
|
||||
*
|
||||
* Open source under the BSD License.
|
||||
*
|
||||
* Copyright © 2008 George McGinley Smith
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification,
|
||||
* are permitted provided that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* Neither the name of the author nor the names of contributors may be used to endorse
|
||||
* or promote products derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
// t: current time, b: begInnIng value, c: change In value, d: duration
|
||||
jQuery.easing['jswing'] = jQuery.easing['swing'];
|
||||
|
||||
jQuery.extend( jQuery.easing,
|
||||
{
|
||||
def: 'easeOutQuad',
|
||||
swing: function (x, t, b, c, d) {
|
||||
return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
|
||||
},
|
||||
easeInQuad: function (x, t, b, c, d) {
|
||||
return c*(t/=d)*t + b;
|
||||
},
|
||||
easeOutQuad: function (x, t, b, c, d) {
|
||||
return -c *(t/=d)*(t-2) + b;
|
||||
},
|
||||
easeInOutQuad: function (x, t, b, c, d) {
|
||||
if ((t/=d/2) < 1) return c/2*t*t + b;
|
||||
return -c/2 * ((--t)*(t-2) - 1) + b;
|
||||
},
|
||||
easeInCubic: function (x, t, b, c, d) {
|
||||
return c*(t/=d)*t*t + b;
|
||||
},
|
||||
easeOutCubic: function (x, t, b, c, d) {
|
||||
return c*((t=t/d-1)*t*t + 1) + b;
|
||||
},
|
||||
easeInOutCubic: function (x, t, b, c, d) {
|
||||
if ((t/=d/2) < 1) return c/2*t*t*t + b;
|
||||
return c/2*((t-=2)*t*t + 2) + b;
|
||||
},
|
||||
easeInQuart: function (x, t, b, c, d) {
|
||||
return c*(t/=d)*t*t*t + b;
|
||||
},
|
||||
easeOutQuart: function (x, t, b, c, d) {
|
||||
return -c * ((t=t/d-1)*t*t*t - 1) + b;
|
||||
},
|
||||
easeInOutQuart: function (x, t, b, c, d) {
|
||||
if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
|
||||
return -c/2 * ((t-=2)*t*t*t - 2) + b;
|
||||
},
|
||||
easeInQuint: function (x, t, b, c, d) {
|
||||
return c*(t/=d)*t*t*t*t + b;
|
||||
},
|
||||
easeOutQuint: function (x, t, b, c, d) {
|
||||
return c*((t=t/d-1)*t*t*t*t + 1) + b;
|
||||
},
|
||||
easeInOutQuint: function (x, t, b, c, d) {
|
||||
if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
|
||||
return c/2*((t-=2)*t*t*t*t + 2) + b;
|
||||
},
|
||||
easeInSine: function (x, t, b, c, d) {
|
||||
return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
|
||||
},
|
||||
easeOutSine: function (x, t, b, c, d) {
|
||||
return c * Math.sin(t/d * (Math.PI/2)) + b;
|
||||
},
|
||||
easeInOutSine: function (x, t, b, c, d) {
|
||||
return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
|
||||
},
|
||||
easeInExpo: function (x, t, b, c, d) {
|
||||
return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
|
||||
},
|
||||
easeOutExpo: function (x, t, b, c, d) {
|
||||
return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
|
||||
},
|
||||
easeInOutExpo: function (x, t, b, c, d) {
|
||||
if (t==0) return b;
|
||||
if (t==d) return b+c;
|
||||
if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
|
||||
return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
|
||||
},
|
||||
easeInCirc: function (x, t, b, c, d) {
|
||||
return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
|
||||
},
|
||||
easeOutCirc: function (x, t, b, c, d) {
|
||||
return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
|
||||
},
|
||||
easeInOutCirc: function (x, t, b, c, d) {
|
||||
if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
|
||||
return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
|
||||
},
|
||||
easeInElastic: function (x, t, b, c, d) {
|
||||
var s=1.70158;var p=0;var a=c;
|
||||
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
|
||||
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
||||
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
||||
return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
|
||||
},
|
||||
easeOutElastic: function (x, t, b, c, d) {
|
||||
var s=1.70158;var p=0;var a=c;
|
||||
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
|
||||
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
||||
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
||||
return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
|
||||
},
|
||||
easeInOutElastic: function (x, t, b, c, d) {
|
||||
var s=1.70158;var p=0;var a=c;
|
||||
if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
|
||||
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
||||
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
||||
if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
|
||||
return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
|
||||
},
|
||||
easeInBack: function (x, t, b, c, d, s) {
|
||||
if (s == undefined) s = 1.70158;
|
||||
return c*(t/=d)*t*((s+1)*t - s) + b;
|
||||
},
|
||||
easeOutBack: function (x, t, b, c, d, s) {
|
||||
if (s == undefined) s = 1.70158;
|
||||
return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
|
||||
},
|
||||
easeInOutBack: function (x, t, b, c, d, s) {
|
||||
if (s == undefined) s = 1.70158;
|
||||
if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
|
||||
return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
|
||||
},
|
||||
easeInBounce: function (x, t, b, c, d) {
|
||||
return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
|
||||
},
|
||||
easeOutBounce: function (x, t, b, c, d) {
|
||||
if ((t/=d) < (1/2.75)) {
|
||||
return c*(7.5625*t*t) + b;
|
||||
} else if (t < (2/2.75)) {
|
||||
return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
|
||||
} else if (t < (2.5/2.75)) {
|
||||
return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
|
||||
} else {
|
||||
return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
|
||||
}
|
||||
},
|
||||
easeInOutBounce: function (x, t, b, c, d) {
|
||||
if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
|
||||
return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
*
|
||||
* TERMS OF USE - EASING EQUATIONS
|
||||
*
|
||||
* Open source under the BSD License.
|
||||
*
|
||||
* Copyright © 2001 Robert Penner
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification,
|
||||
* are permitted provided that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* Neither the name of the author nor the names of contributors may be used to endorse
|
||||
* or promote products derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
@@ -0,0 +1,32 @@
|
||||
/*!
|
||||
* jquery.scrollto.js 0.0.1 - https://github.com/yckart/jquery.scrollto.js
|
||||
* Scroll smooth to any element in your DOM.
|
||||
*
|
||||
* Copyright (c) 2012 Yannick Albert (http://yckart.com)
|
||||
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php).
|
||||
* 2013/02/17
|
||||
**/
|
||||
$.scrollTo = $.fn.scrollTo = function(x, y, options){
|
||||
if (!(this instanceof $)) return $.fn.scrollTo.apply($('html, body'), arguments);
|
||||
|
||||
options = $.extend({}, {
|
||||
gap: {
|
||||
x: 0,
|
||||
y: 0
|
||||
},
|
||||
animation: {
|
||||
easing: 'easeInSine',
|
||||
duration: 'slow',
|
||||
complete: $.noop,
|
||||
step: $.noop
|
||||
}
|
||||
}, options);
|
||||
|
||||
return this.each(function(){
|
||||
var elem = $(this);
|
||||
elem.stop().animate({
|
||||
scrollLeft: !isNaN(Number(x)) ? x : $(y).offset().left + options.gap.x,
|
||||
scrollTop: !isNaN(Number(y)) ? y : $(y).offset().top + options.gap.y - 69 // *edited
|
||||
}, options.animation);
|
||||
});
|
||||
};
|
||||
@@ -0,0 +1,59 @@
|
||||
/* global jQuery */
|
||||
/* global document */
|
||||
|
||||
jQuery(function () {
|
||||
'use strict';
|
||||
|
||||
document.addEventListener("touchstart", function () {}, false);
|
||||
jQuery(function () {
|
||||
|
||||
jQuery('body').wrapInner('<div class="wsmenucontainer" />');
|
||||
jQuery('<div class="overlapblackbg"></div>').prependTo('.wsmenu');
|
||||
|
||||
jQuery('#wsnavtoggle').click(function () {
|
||||
jQuery('body').toggleClass('wsactive');
|
||||
});
|
||||
|
||||
jQuery('.overlapblackbg').click(function () {
|
||||
jQuery("body").removeClass('wsactive');
|
||||
});
|
||||
|
||||
jQuery('.wsmenu > .wsmenu-list > li').has('.sub-menu').prepend('<span class="wsmenu-click"><i class="wsmenu-arrow"></i></span>');
|
||||
jQuery('.wsmenu > .wsmenu-list > li').has('.wsmegamenu').prepend('<span class="wsmenu-click"><i class="wsmenu-arrow"></i></span>');
|
||||
|
||||
jQuery('.wsmenu-click').click(function () {
|
||||
jQuery(this).toggleClass('ws-activearrow')
|
||||
.parent().siblings().children().removeClass('ws-activearrow');
|
||||
jQuery(".wsmenu > .wsmenu-list > li > .sub-menu, .wsmegamenu").not(jQuery(this).siblings('.wsmenu > .wsmenu-list > li > .sub-menu, .wsmegamenu')).slideUp('slow');
|
||||
jQuery(this).siblings('.sub-menu').slideToggle('slow');
|
||||
jQuery(this).siblings('.wsmegamenu').slideToggle('slow');
|
||||
});
|
||||
|
||||
jQuery('.wsmenu > .wsmenu-list > li > ul > li').has('.sub-menu').prepend('<span class="wsmenu-click02"><i class="wsmenu-arrow"></i></span>');
|
||||
jQuery('.wsmenu > .wsmenu-list > li > ul > li > ul > li').has('.sub-menu').prepend('<span class="wsmenu-click02"><i class="wsmenu-arrow"></i></span>');
|
||||
|
||||
jQuery('.wsmenu-click02').click(function () {
|
||||
jQuery(this).children('.wsmenu-arrow').toggleClass('wsmenu-rotate');
|
||||
jQuery(this).siblings('li > .sub-menu').slideToggle('slow');
|
||||
});
|
||||
|
||||
jQuery(window).on('resize', function () {
|
||||
|
||||
if (jQuery(window).outerWidth() < 992) {
|
||||
jQuery('.wsmenu').css('height', jQuery(this).height() + "px");
|
||||
jQuery('.wsmenucontainer').css('min-width', jQuery(this).width() + "px");
|
||||
} else {
|
||||
jQuery('.wsmenu').removeAttr("style");
|
||||
jQuery('.wsmenucontainer').removeAttr("style");
|
||||
jQuery('body').removeClass("wsactive");
|
||||
jQuery('.wsmenu > .wsmenu-list > li > .wsmegamenu, .wsmenu > .wsmenu-list > li > ul.sub-menu, .wsmenu > .wsmenu-list > li > ul.sub-menu > li > ul.sub-menu, .wsmenu > .wsmenu-list > li > ul.sub-menu > li > ul.sub-menu > li > ul.sub-menu').removeAttr("style");
|
||||
jQuery('.wsmenu-click').removeClass("ws-activearrow");
|
||||
jQuery('.wsmenu-click02 > i').removeClass("wsmenu-rotate");
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
jQuery(window).trigger('resize');
|
||||
|
||||
});
|
||||
}());
|
||||
@@ -0,0 +1,5 @@
|
||||
/*! Respond.js v1.4.2: min/max-width media query polyfill * Copyright 2013 Scott Jehl
|
||||
* Licensed under https://github.com/scottjehl/Respond/blob/master/LICENSE-MIT
|
||||
* */
|
||||
|
||||
!function(a){"use strict";a.matchMedia=a.matchMedia||function(a){var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement("body"),f=a.createElement("div");return f.id="mq-test-1",f.style.cssText="position:absolute;top:-100em",e.style.background="none",e.appendChild(f),function(a){return f.innerHTML='­<style media="'+a+'"> #mq-test-1 { width: 42px; }</style>',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){u(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))};if(c.ajax=f,c.queue=d,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,maxw:/\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var g,h,i,j=a.document,k=j.documentElement,l=[],m=[],n=[],o={},p=30,q=j.getElementsByTagName("head")[0]||k,r=j.getElementsByTagName("base")[0],s=q.getElementsByTagName("link"),t=function(){var a,b=j.createElement("div"),c=j.body,d=k.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=j.createElement("body"),c.style.background="none"),k.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&k.insertBefore(c,k.firstChild),a=b.offsetWidth,f?k.removeChild(c):c.removeChild(b),k.style.fontSize=d,e&&(c.style.fontSize=e),a=i=parseFloat(a)},u=function(b){var c="clientWidth",d=k[c],e="CSS1Compat"===j.compatMode&&d||j.body[c]||d,f={},o=s[s.length-1],r=(new Date).getTime();if(b&&g&&p>r-g)return a.clearTimeout(h),h=a.setTimeout(u,p),void 0;g=r;for(var v in l)if(l.hasOwnProperty(v)){var w=l[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?i||t():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?i||t():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(m[w.rules]))}for(var C in n)n.hasOwnProperty(C)&&n[C]&&n[C].parentNode===q&&q.removeChild(n[C]);n.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=j.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,q.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(j.createTextNode(F)),n.push(E)}},v=function(a,b,d){var e=a.replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var g=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},h=!f&&d;b.length&&(b+="/"),h&&(f=1);for(var i=0;f>i;i++){var j,k,n,o;h?(j=d,m.push(g(a))):(j=e[i].match(c.regex.findStyles)&&RegExp.$1,m.push(RegExp.$2&&g(RegExp.$2))),n=j.split(","),o=n.length;for(var p=0;o>p;p++)k=n[p],l.push({media:k.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:m.length-1,hasquery:k.indexOf("(")>-1,minw:k.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:k.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},w=function(){if(d.length){var b=d.shift();f(b.href,function(c){v(c,b.href,b.media),o[b.href]=!0,a.setTimeout(function(){w()},0)})}},x=function(){for(var b=0;b<s.length;b++){var c=s[b],e=c.href,f=c.media,g=c.rel&&"stylesheet"===c.rel.toLowerCase();e&&g&&!o[e]&&(c.styleSheet&&c.styleSheet.rawCssText?(v(c.styleSheet.rawCssText,e,f),o[e]=!0):(!/^([a-zA-Z:]*\/\/)/.test(e)&&!r||e.replace(RegExp.$1,"").split("/")[0]===a.location.host)&&("//"===e.substring(0,2)&&(e=a.location.protocol+e),d.push({href:e,media:f})))}w()};x(),c.update=x,c.getEmValue=t,a.addEventListener?a.addEventListener("resize",b,!1):a.attachEvent&&a.attachEvent("onresize",b)}}(this);
|
||||
@@ -0,0 +1,536 @@
|
||||
(function (global, factory) {
|
||||
if (typeof define === "function" && define.amd) {
|
||||
define(['module', 'exports'], factory);
|
||||
} else if (typeof exports !== "undefined") {
|
||||
factory(module, exports);
|
||||
} else {
|
||||
var mod = {
|
||||
exports: {}
|
||||
};
|
||||
factory(mod, mod.exports);
|
||||
global.WOW = mod.exports;
|
||||
}
|
||||
})(this, function (module, exports) {
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _class, _temp;
|
||||
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
}
|
||||
|
||||
var _createClass = function () {
|
||||
function defineProperties(target, props) {
|
||||
for (var i = 0; i < props.length; i++) {
|
||||
var descriptor = props[i];
|
||||
descriptor.enumerable = descriptor.enumerable || false;
|
||||
descriptor.configurable = true;
|
||||
if ("value" in descriptor) descriptor.writable = true;
|
||||
Object.defineProperty(target, descriptor.key, descriptor);
|
||||
}
|
||||
}
|
||||
|
||||
return function (Constructor, protoProps, staticProps) {
|
||||
if (protoProps) defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) defineProperties(Constructor, staticProps);
|
||||
return Constructor;
|
||||
};
|
||||
}();
|
||||
|
||||
function isIn(needle, haystack) {
|
||||
return haystack.indexOf(needle) >= 0;
|
||||
}
|
||||
|
||||
function extend(custom, defaults) {
|
||||
for (var key in defaults) {
|
||||
if (custom[key] == null) {
|
||||
var value = defaults[key];
|
||||
custom[key] = value;
|
||||
}
|
||||
}
|
||||
return custom;
|
||||
}
|
||||
|
||||
function isMobile(agent) {
|
||||
return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(agent)
|
||||
);
|
||||
}
|
||||
|
||||
function createEvent(event) {
|
||||
var bubble = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];
|
||||
var cancel = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2];
|
||||
var detail = arguments.length <= 3 || arguments[3] === undefined ? null : arguments[3];
|
||||
|
||||
var customEvent = void 0;
|
||||
if (document.createEvent != null) {
|
||||
// W3C DOM
|
||||
customEvent = document.createEvent('CustomEvent');
|
||||
customEvent.initCustomEvent(event, bubble, cancel, detail);
|
||||
} else if (document.createEventObject != null) {
|
||||
// IE DOM < 9
|
||||
customEvent = document.createEventObject();
|
||||
customEvent.eventType = event;
|
||||
} else {
|
||||
customEvent.eventName = event;
|
||||
}
|
||||
|
||||
return customEvent;
|
||||
}
|
||||
|
||||
function emitEvent(elem, event) {
|
||||
if (elem.dispatchEvent != null) {
|
||||
// W3C DOM
|
||||
elem.dispatchEvent(event);
|
||||
} else if (event in (elem != null)) {
|
||||
elem[event]();
|
||||
} else if ('on' + event in (elem != null)) {
|
||||
elem['on' + event]();
|
||||
}
|
||||
}
|
||||
|
||||
function addEvent(elem, event, fn) {
|
||||
if (elem.addEventListener != null) {
|
||||
// W3C DOM
|
||||
elem.addEventListener(event, fn, false);
|
||||
} else if (elem.attachEvent != null) {
|
||||
// IE DOM
|
||||
elem.attachEvent('on' + event, fn);
|
||||
} else {
|
||||
// fallback
|
||||
elem[event] = fn;
|
||||
}
|
||||
}
|
||||
|
||||
function removeEvent(elem, event, fn) {
|
||||
if (elem.removeEventListener != null) {
|
||||
// W3C DOM
|
||||
elem.removeEventListener(event, fn, false);
|
||||
} else if (elem.detachEvent != null) {
|
||||
// IE DOM
|
||||
elem.detachEvent('on' + event, fn);
|
||||
} else {
|
||||
// fallback
|
||||
delete elem[event];
|
||||
}
|
||||
}
|
||||
|
||||
function getInnerHeight() {
|
||||
if ('innerHeight' in window) {
|
||||
return window.innerHeight;
|
||||
}
|
||||
|
||||
return document.documentElement.clientHeight;
|
||||
}
|
||||
|
||||
// Minimalistic WeakMap shim, just in case.
|
||||
var WeakMap = window.WeakMap || window.MozWeakMap || function () {
|
||||
function WeakMap() {
|
||||
_classCallCheck(this, WeakMap);
|
||||
|
||||
this.keys = [];
|
||||
this.values = [];
|
||||
}
|
||||
|
||||
_createClass(WeakMap, [{
|
||||
key: 'get',
|
||||
value: function get(key) {
|
||||
for (var i = 0; i < this.keys.length; i++) {
|
||||
var item = this.keys[i];
|
||||
if (item === key) {
|
||||
return this.values[i];
|
||||
}
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
}, {
|
||||
key: 'set',
|
||||
value: function set(key, value) {
|
||||
for (var i = 0; i < this.keys.length; i++) {
|
||||
var item = this.keys[i];
|
||||
if (item === key) {
|
||||
this.values[i] = value;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
this.keys.push(key);
|
||||
this.values.push(value);
|
||||
return this;
|
||||
}
|
||||
}]);
|
||||
|
||||
return WeakMap;
|
||||
}();
|
||||
|
||||
// Dummy MutationObserver, to avoid raising exceptions.
|
||||
var MutationObserver = window.MutationObserver || window.WebkitMutationObserver || window.MozMutationObserver || (_temp = _class = function () {
|
||||
function MutationObserver() {
|
||||
_classCallCheck(this, MutationObserver);
|
||||
|
||||
if (typeof console !== 'undefined' && console !== null) {
|
||||
console.warn('MutationObserver is not supported by your browser.');
|
||||
console.warn('WOW.js cannot detect dom mutations, please call .sync() after loading new content.');
|
||||
}
|
||||
}
|
||||
|
||||
_createClass(MutationObserver, [{
|
||||
key: 'observe',
|
||||
value: function observe() {}
|
||||
}]);
|
||||
|
||||
return MutationObserver;
|
||||
}(), _class.notSupported = true, _temp);
|
||||
|
||||
// getComputedStyle shim, from http://stackoverflow.com/a/21797294
|
||||
var getComputedStyle = window.getComputedStyle || function getComputedStyle(el) {
|
||||
var getComputedStyleRX = /(\-([a-z]){1})/g;
|
||||
return {
|
||||
getPropertyValue: function getPropertyValue(prop) {
|
||||
if (prop === 'float') {
|
||||
prop = 'styleFloat';
|
||||
}
|
||||
if (getComputedStyleRX.test(prop)) {
|
||||
prop.replace(getComputedStyleRX, function (_, _char) {
|
||||
return _char.toUpperCase();
|
||||
});
|
||||
}
|
||||
var currentStyle = el.currentStyle;
|
||||
|
||||
return (currentStyle != null ? currentStyle[prop] : void 0) || null;
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
var WOW = function () {
|
||||
function WOW() {
|
||||
var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
|
||||
|
||||
_classCallCheck(this, WOW);
|
||||
|
||||
this.defaults = {
|
||||
boxClass: 'wow',
|
||||
animateClass: 'animated',
|
||||
offset: 0,
|
||||
mobile: false,
|
||||
live: true,
|
||||
callback: null,
|
||||
scrollContainer: null,
|
||||
resetAnimation: true
|
||||
};
|
||||
|
||||
this.animate = function animateFactory() {
|
||||
if ('requestAnimationFrame' in window) {
|
||||
return function (callback) {
|
||||
return window.requestAnimationFrame(callback);
|
||||
};
|
||||
}
|
||||
return function (callback) {
|
||||
return callback();
|
||||
};
|
||||
}();
|
||||
|
||||
this.vendors = ['moz', 'webkit'];
|
||||
|
||||
this.start = this.start.bind(this);
|
||||
this.resetAnimation = this.resetAnimation.bind(this);
|
||||
this.scrollHandler = this.scrollHandler.bind(this);
|
||||
this.scrollCallback = this.scrollCallback.bind(this);
|
||||
this.scrolled = true;
|
||||
this.config = extend(options, this.defaults);
|
||||
if (options.scrollContainer != null) {
|
||||
this.config.scrollContainer = document.querySelector(options.scrollContainer);
|
||||
}
|
||||
// Map of elements to animation names:
|
||||
this.animationNameCache = new WeakMap();
|
||||
this.wowEvent = createEvent(this.config.boxClass);
|
||||
}
|
||||
|
||||
_createClass(WOW, [{
|
||||
key: 'init',
|
||||
value: function init() {
|
||||
this.element = window.document.documentElement;
|
||||
if (isIn(document.readyState, ['interactive', 'complete'])) {
|
||||
this.start();
|
||||
} else {
|
||||
addEvent(document, 'DOMContentLoaded', this.start);
|
||||
}
|
||||
this.finished = [];
|
||||
}
|
||||
}, {
|
||||
key: 'start',
|
||||
value: function start() {
|
||||
var _this = this;
|
||||
|
||||
this.stopped = false;
|
||||
this.boxes = [].slice.call(this.element.querySelectorAll('.' + this.config.boxClass));
|
||||
this.all = this.boxes.slice(0);
|
||||
if (this.boxes.length) {
|
||||
if (this.disabled()) {
|
||||
this.resetStyle();
|
||||
} else {
|
||||
for (var i = 0; i < this.boxes.length; i++) {
|
||||
var box = this.boxes[i];
|
||||
this.applyStyle(box, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!this.disabled()) {
|
||||
addEvent(this.config.scrollContainer || window, 'scroll', this.scrollHandler);
|
||||
addEvent(window, 'resize', this.scrollHandler);
|
||||
this.interval = setInterval(this.scrollCallback, 50);
|
||||
}
|
||||
if (this.config.live) {
|
||||
var mut = new MutationObserver(function (records) {
|
||||
for (var j = 0; j < records.length; j++) {
|
||||
var record = records[j];
|
||||
for (var k = 0; k < record.addedNodes.length; k++) {
|
||||
var node = record.addedNodes[k];
|
||||
_this.doSync(node);
|
||||
}
|
||||
}
|
||||
return undefined;
|
||||
});
|
||||
mut.observe(document.body, {
|
||||
childList: true,
|
||||
subtree: true
|
||||
});
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: 'stop',
|
||||
value: function stop() {
|
||||
this.stopped = true;
|
||||
removeEvent(this.config.scrollContainer || window, 'scroll', this.scrollHandler);
|
||||
removeEvent(window, 'resize', this.scrollHandler);
|
||||
if (this.interval != null) {
|
||||
clearInterval(this.interval);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: 'sync',
|
||||
value: function sync() {
|
||||
if (MutationObserver.notSupported) {
|
||||
this.doSync(this.element);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: 'doSync',
|
||||
value: function doSync(element) {
|
||||
if (typeof element === 'undefined' || element === null) {
|
||||
element = this.element;
|
||||
}
|
||||
if (element.nodeType !== 1) {
|
||||
return;
|
||||
}
|
||||
element = element.parentNode || element;
|
||||
var iterable = element.querySelectorAll('.' + this.config.boxClass);
|
||||
for (var i = 0; i < iterable.length; i++) {
|
||||
var box = iterable[i];
|
||||
if (!isIn(box, this.all)) {
|
||||
this.boxes.push(box);
|
||||
this.all.push(box);
|
||||
if (this.stopped || this.disabled()) {
|
||||
this.resetStyle();
|
||||
} else {
|
||||
this.applyStyle(box, true);
|
||||
}
|
||||
this.scrolled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: 'show',
|
||||
value: function show(box) {
|
||||
this.applyStyle(box);
|
||||
box.className = box.className + ' ' + this.config.animateClass;
|
||||
if (this.config.callback != null) {
|
||||
this.config.callback(box);
|
||||
}
|
||||
emitEvent(box, this.wowEvent);
|
||||
|
||||
if (this.config.resetAnimation) {
|
||||
addEvent(box, 'animationend', this.resetAnimation);
|
||||
addEvent(box, 'oanimationend', this.resetAnimation);
|
||||
addEvent(box, 'webkitAnimationEnd', this.resetAnimation);
|
||||
addEvent(box, 'MSAnimationEnd', this.resetAnimation);
|
||||
}
|
||||
|
||||
return box;
|
||||
}
|
||||
}, {
|
||||
key: 'applyStyle',
|
||||
value: function applyStyle(box, hidden) {
|
||||
var _this2 = this;
|
||||
|
||||
var duration = box.getAttribute('data-wow-duration');
|
||||
var delay = box.getAttribute('data-wow-delay');
|
||||
var iteration = box.getAttribute('data-wow-iteration');
|
||||
|
||||
return this.animate(function () {
|
||||
return _this2.customStyle(box, hidden, duration, delay, iteration);
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: 'resetStyle',
|
||||
value: function resetStyle() {
|
||||
for (var i = 0; i < this.boxes.length; i++) {
|
||||
var box = this.boxes[i];
|
||||
box.style.visibility = 'visible';
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
}, {
|
||||
key: 'resetAnimation',
|
||||
value: function resetAnimation(event) {
|
||||
if (event.type.toLowerCase().indexOf('animationend') >= 0) {
|
||||
var target = event.target || event.srcElement;
|
||||
target.className = target.className.replace(this.config.animateClass, '').trim();
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: 'customStyle',
|
||||
value: function customStyle(box, hidden, duration, delay, iteration) {
|
||||
if (hidden) {
|
||||
this.cacheAnimationName(box);
|
||||
}
|
||||
box.style.visibility = hidden ? 'hidden' : 'visible';
|
||||
|
||||
if (duration) {
|
||||
this.vendorSet(box.style, { animationDuration: duration });
|
||||
}
|
||||
if (delay) {
|
||||
this.vendorSet(box.style, { animationDelay: delay });
|
||||
}
|
||||
if (iteration) {
|
||||
this.vendorSet(box.style, { animationIterationCount: iteration });
|
||||
}
|
||||
this.vendorSet(box.style, { animationName: hidden ? 'none' : this.cachedAnimationName(box) });
|
||||
|
||||
return box;
|
||||
}
|
||||
}, {
|
||||
key: 'vendorSet',
|
||||
value: function vendorSet(elem, properties) {
|
||||
for (var name in properties) {
|
||||
if (properties.hasOwnProperty(name)) {
|
||||
var value = properties[name];
|
||||
elem['' + name] = value;
|
||||
for (var i = 0; i < this.vendors.length; i++) {
|
||||
var vendor = this.vendors[i];
|
||||
elem['' + vendor + name.charAt(0).toUpperCase() + name.substr(1)] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: 'vendorCSS',
|
||||
value: function vendorCSS(elem, property) {
|
||||
var style = getComputedStyle(elem);
|
||||
var result = style.getPropertyCSSValue(property);
|
||||
for (var i = 0; i < this.vendors.length; i++) {
|
||||
var vendor = this.vendors[i];
|
||||
result = result || style.getPropertyCSSValue('-' + vendor + '-' + property);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}, {
|
||||
key: 'animationName',
|
||||
value: function animationName(box) {
|
||||
var aName = void 0;
|
||||
try {
|
||||
aName = this.vendorCSS(box, 'animation-name').cssText;
|
||||
} catch (error) {
|
||||
// Opera, fall back to plain property value
|
||||
aName = getComputedStyle(box).getPropertyValue('animation-name');
|
||||
}
|
||||
|
||||
if (aName === 'none') {
|
||||
return ''; // SVG/Firefox, unable to get animation name?
|
||||
}
|
||||
|
||||
return aName;
|
||||
}
|
||||
}, {
|
||||
key: 'cacheAnimationName',
|
||||
value: function cacheAnimationName(box) {
|
||||
// https://bugzilla.mozilla.org/show_bug.cgi?id=921834
|
||||
// box.dataset is not supported for SVG elements in Firefox
|
||||
return this.animationNameCache.set(box, this.animationName(box));
|
||||
}
|
||||
}, {
|
||||
key: 'cachedAnimationName',
|
||||
value: function cachedAnimationName(box) {
|
||||
return this.animationNameCache.get(box);
|
||||
}
|
||||
}, {
|
||||
key: 'scrollHandler',
|
||||
value: function scrollHandler() {
|
||||
this.scrolled = true;
|
||||
}
|
||||
}, {
|
||||
key: 'scrollCallback',
|
||||
value: function scrollCallback() {
|
||||
if (this.scrolled) {
|
||||
this.scrolled = false;
|
||||
var results = [];
|
||||
for (var i = 0; i < this.boxes.length; i++) {
|
||||
var box = this.boxes[i];
|
||||
if (box) {
|
||||
if (this.isVisible(box)) {
|
||||
this.show(box);
|
||||
continue;
|
||||
}
|
||||
results.push(box);
|
||||
}
|
||||
}
|
||||
this.boxes = results;
|
||||
if (!this.boxes.length && !this.config.live) {
|
||||
this.stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: 'offsetTop',
|
||||
value: function offsetTop(element) {
|
||||
// SVG elements don't have an offsetTop in Firefox.
|
||||
// This will use their nearest parent that has an offsetTop.
|
||||
// Also, using ('offsetTop' of element) causes an exception in Firefox.
|
||||
while (element.offsetTop === undefined) {
|
||||
element = element.parentNode;
|
||||
}
|
||||
var top = element.offsetTop;
|
||||
while (element.offsetParent) {
|
||||
element = element.offsetParent;
|
||||
top += element.offsetTop;
|
||||
}
|
||||
return top;
|
||||
}
|
||||
}, {
|
||||
key: 'isVisible',
|
||||
value: function isVisible(box) {
|
||||
var offset = box.getAttribute('data-wow-offset') || this.config.offset;
|
||||
var viewTop = this.config.scrollContainer && this.config.scrollContainer.scrollTop || window.pageYOffset;
|
||||
var viewBottom = viewTop + Math.min(this.element.clientHeight, getInnerHeight()) - offset;
|
||||
var top = this.offsetTop(box);
|
||||
var bottom = top + box.clientHeight;
|
||||
|
||||
return top <= viewBottom && bottom >= viewTop;
|
||||
}
|
||||
}, {
|
||||
key: 'disabled',
|
||||
value: function disabled() {
|
||||
return !this.config.mobile && isMobile(navigator.userAgent);
|
||||
}
|
||||
}]);
|
||||
|
||||
return WOW;
|
||||
}();
|
||||
|
||||
exports.default = WOW;
|
||||
module.exports = exports['default'];
|
||||
});
|
||||