khaihihi
483
wp-content/themes/ekko/core/assets/css/admin-styles.css
Normal file
@@ -0,0 +1,483 @@
|
||||
/*
|
||||
Admin custom CSS
|
||||
@package ekko
|
||||
by KeyDesign
|
||||
*/
|
||||
|
||||
/* --------------------------------------
|
||||
Meta box custom styles
|
||||
-----------------------------------------*/
|
||||
.kd_meta_block_prim {
|
||||
margin-bottom: 10px;
|
||||
padding-bottom: 10px;
|
||||
border-bottom: 1px dashed #ddd;
|
||||
}
|
||||
|
||||
.meta_block_top {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.meta_block_bottom {
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.kd_meta_block_prim label {
|
||||
width: 20%;
|
||||
display: inline-block;
|
||||
font-weight: bold;
|
||||
padding-top: 4px;
|
||||
}
|
||||
|
||||
.kd_meta_block_prim .kd-meta-desc {
|
||||
display: block;
|
||||
width: 18%;
|
||||
padding-top: 6px;
|
||||
clear: both;
|
||||
font-style: italic;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.kd_meta_block_prim input {
|
||||
color: #000;
|
||||
font-size: 12px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.kd_meta_block_prim .page_subtitle_box {
|
||||
width: 73%;
|
||||
}
|
||||
|
||||
.kd_meta_block_prim input[type=checkbox] {
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
#redux-sticky .button {
|
||||
background: #fff;
|
||||
border-color: #25b15f;
|
||||
box-shadow: none;
|
||||
text-decoration: none;
|
||||
text-shadow: none;
|
||||
height: 35px;
|
||||
color: #25b15f;
|
||||
font-weight: 700;
|
||||
line-height: 33px;
|
||||
padding: 0 20px;
|
||||
margin: 0 5px;
|
||||
float: left;
|
||||
border-radius: 30px;
|
||||
border-width: 2px;
|
||||
}
|
||||
|
||||
#redux-sticky .button:hover {
|
||||
background: #333;
|
||||
border-color: #333;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#redux-sticky .button-primary {
|
||||
background: #25b15f;
|
||||
border-color: #25b15f;
|
||||
box-shadow: none;
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
text-shadow: none;
|
||||
height: 35px;
|
||||
font-weight: 700;
|
||||
line-height: 33px;
|
||||
}
|
||||
|
||||
#redux-sticky .button-primary:hover {
|
||||
background: #333;
|
||||
border-color: #333;
|
||||
}
|
||||
|
||||
#redux-footer .button {
|
||||
background: #fff;
|
||||
border-color: #25b15f;
|
||||
box-shadow: none;
|
||||
text-decoration: none;
|
||||
text-shadow: none;
|
||||
height: 35px;
|
||||
color: #25b15f;
|
||||
font-weight: 700;
|
||||
line-height: 33px;
|
||||
padding: 0 20px;
|
||||
margin: 0 5px;
|
||||
border-width: 2px;
|
||||
border-radius: 30px;
|
||||
}
|
||||
|
||||
#redux-footer .button:hover {
|
||||
background: #333;
|
||||
border-color: #333;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#redux-footer .button-primary {
|
||||
background: #25b15f;
|
||||
border-color: #25b15f;
|
||||
box-shadow: none;
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
text-shadow: none;
|
||||
height: 35px;
|
||||
font-weight: 700;
|
||||
line-height: 33px;
|
||||
margin: 0 5px;
|
||||
}
|
||||
|
||||
#redux-footer .button-primary:hover {
|
||||
background: #333;
|
||||
border-color: #333;
|
||||
}
|
||||
|
||||
#redux-form-wrapper input:focus {
|
||||
box-shadow: none;
|
||||
border-color: #25b15f;
|
||||
}
|
||||
|
||||
#redux-form-wrapper .select2-container .select2-choice {
|
||||
display: block;
|
||||
height: 33px;
|
||||
padding: 0 0 0 8px;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
border: 1px solid #ddd;
|
||||
white-space: nowrap;
|
||||
line-height: 33px;
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
border-radius: 4px;
|
||||
background-clip: padding-box;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
background-color: #fff;
|
||||
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(0.5, #fff));
|
||||
background-image: -webkit-linear-gradient(center bottom, #eee 0%, #fff 50%);
|
||||
background-image: -moz-linear-gradient(center bottom, #eee 0%, #fff 50%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr ='#ffffff', endColorstr ='#eeeeee', GradientType = 0);
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
#redux-form-wrapper .el-icon-question-sign {
|
||||
color: #25b15f;
|
||||
}
|
||||
|
||||
#redux-form-wrapper .wp-color-result-text {
|
||||
background: #fff;
|
||||
border-radius: 0 2px 2px 0;
|
||||
border-left: 1px solid #ddd;
|
||||
color: #333;
|
||||
display: block;
|
||||
line-height: 22px;
|
||||
padding: 0 6px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#redux-form-wrapper .select2-container .select2-choice .select2-arrow {
|
||||
display: inline-block;
|
||||
width: 18px;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
line-height: 35px;
|
||||
top: 0;
|
||||
border-left: 1px solid #ddd;
|
||||
border-radius: 0 4px 4px 0;
|
||||
background-clip: padding-box;
|
||||
background: #fff;
|
||||
background-image: none;
|
||||
background-image: none;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr ='#eeeeee', endColorstr ='#cccccc', GradientType = 0);
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
.redux-container {
|
||||
background-color: #f5f5f5;
|
||||
background-repeat: repeat-x;
|
||||
background-image: -moz-linear-gradient(top, #f2f2f2 0, #f5f5f5 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #f2f2f2), color-stop(100%, #f5f5f5));
|
||||
background-image: -webkit-linear-gradient(top, #f2f2f2 0, #f5f5f5 100%);
|
||||
background-image: -ms-linear-gradient(top, #f2f2f2 0, #f5f5f5 100%);
|
||||
background-image: -o-linear-gradient(top, #f2f2f2 0, #f5f5f5 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#eeeeee', GradientType=0);
|
||||
background-image: linear-gradient(top, #f2f2f2 0, #f5f5f5 100%);
|
||||
border: 1px solid #dedede;
|
||||
box-shadow: none;
|
||||
-moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .4);
|
||||
margin-top: 5px;
|
||||
overflow: hidden;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.redux-container #redux-header, .redux-container #redux-footer {
|
||||
text-align: right;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.redux-container #redux-footer {
|
||||
border-top: 1px solid #ddd!important;
|
||||
z-index: 9999;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.redux-container .notice-yellow {
|
||||
margin: 0;
|
||||
border-bottom: 1px solid #E7E7E7;
|
||||
background-color: #f3f3f3;
|
||||
color: red;
|
||||
padding: 15px 35px 15px 14px;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
.redux-container #info_bar {
|
||||
background: #f4f4f4;
|
||||
border-bottom: 1px solid #ddd;
|
||||
padding: 7px;
|
||||
text-align: right;
|
||||
-moz-box-shadow: inset 0 1px 0 #fcfcfc;
|
||||
-webkit-box-shadow: inset 0 1px 0 #fcfcfc;
|
||||
box-shadow: inset 0 1px 0 #fcfcfc;
|
||||
height: 34px!important;
|
||||
border-left: 0;
|
||||
}
|
||||
|
||||
.redux-container .expand_options {
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
height: 22px;
|
||||
width: 21px;
|
||||
float: left;
|
||||
font-size: 0;
|
||||
text-indent: -9999px;
|
||||
display: none;
|
||||
margin: 1px 0 0 5px;
|
||||
border: 1px solid #bbb;
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
/*background: url(../img/toggle_tabs.png) no-repeat -2px -26px;*/
|
||||
}
|
||||
|
||||
.redux-main .form-table tr {
|
||||
border-bottom: none!important;
|
||||
}
|
||||
|
||||
.redux-main input {
|
||||
line-height: 27px!important;
|
||||
box-shadow: none!important;
|
||||
border-radius: 4px;
|
||||
background: #fff;
|
||||
box-shadow: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.redux-main .input-append .add-on, .redux-main .input-prepend .add-on {
|
||||
width: auto;
|
||||
display: inline-block;
|
||||
min-width: 16px;
|
||||
padding: 3px 4px;
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
line-height: 20px;
|
||||
text-align: center;
|
||||
text-shadow: none;
|
||||
background-color: #fff;
|
||||
border: 1px solid #dedede;
|
||||
}
|
||||
|
||||
.redux-container .redux-main .input-append .add-on, .redux-container .redux-main .input-prepend .add-on {
|
||||
width: auto;
|
||||
display: inline-block;
|
||||
min-width: 16px;
|
||||
padding: 7px 4px;
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
line-height: 27px;
|
||||
text-align: center;
|
||||
text-shadow: none;
|
||||
background-color: #fff;
|
||||
border: 1px solid #dddddd;
|
||||
}
|
||||
|
||||
.redux-container .redux-main .input-prepend .add-on {
|
||||
line-height:20px;
|
||||
}
|
||||
|
||||
.redux-sidebar .redux-group-menu li a {
|
||||
display: block;
|
||||
padding: 15px 4px 15px 14px;
|
||||
background: #e0e0e0;
|
||||
background: 0 0;
|
||||
border-width: 1px 0;
|
||||
border-style: solid;
|
||||
border-bottom-color: #E7E7E7;
|
||||
border-top-color: #F9F9F9;
|
||||
opacity: 1;
|
||||
color: #333;
|
||||
font-weight: 700;
|
||||
text-decoration: none;
|
||||
-webkit-transition: none;
|
||||
transition: none;
|
||||
outline: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.redux-sidebar .redux-group-menu li a:hover {
|
||||
background: #eaeaea;
|
||||
color: #25b15f;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.redux-sidebar .redux-group-tab-link-a i {
|
||||
vertical-align: middle;
|
||||
font-size: 1em;
|
||||
position: absolute;
|
||||
line-height: 1.4em;
|
||||
color: #25b15f;
|
||||
}
|
||||
|
||||
.admin-color-fresh .redux-container-switch .cb-disable, .admin-color-fresh .redux-container-switch .cb-enable, .admin-color-fresh .ui-state-default, .admin-color-fresh .ui-widget-content .ui-state-default, .admin-color-fresh .ui-widget-header .ui-state-default {
|
||||
background-color: #f5f5f5;
|
||||
background-image: -khtml-gradient(linear, left top, left bottom, from(#f8f8f8), to(#f5f5f5));
|
||||
background-image: -moz-linear-gradient(top, #f8f8f8, #f5f5f5);
|
||||
background-image: -ms-linear-gradient(top, #f8f8f8, #f5f5f5);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #f8f8f8), color-stop(100%, #f5f5f5));
|
||||
background-image: -webkit-linear-gradient(top, #f8f8f8, #f5f5f5);
|
||||
background-image: -o-linear-gradient(top, #f8f8f8, #f5f5f5);
|
||||
background-image: linear-gradient(top, #f8f8f8, #f5f5f5);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='@from', endColorstr='@to', GradientType=0);
|
||||
border-color: #ddd;
|
||||
box-shadow: none;
|
||||
line-height: 22px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.admin-color-fresh .redux-container-switch .cb-disable.selected {
|
||||
background: #32373c !important;
|
||||
background-image: -khtml-gradient(linear, left top, left bottom, from(#929292), to(#646464));
|
||||
background-image: -moz-linear-gradient(top, #929292, #646464);
|
||||
background-image: -ms-linear-gradient(top, #929292, #646464);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #929292), color-stop(100%, #646464));
|
||||
background-image: -webkit-linear-gradient(top, #929292, #646464);
|
||||
background-image: -o-linear-gradient(top, #929292, #646464);
|
||||
background-image: linear-gradient(top, #929292, #646464);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='@from', endColorstr='@to', GradientType=0);
|
||||
border-color: #32373c!important;
|
||||
}
|
||||
|
||||
#wpbody .redux-container-switch .cb-enable.selected, #wpbody .ui-buttonset .ui-state-active {
|
||||
background: #25b15f!important;
|
||||
background-image: -khtml-gradient(linear, left top, left bottom, from(#008ec6), to(#0074a2));
|
||||
background-image: -moz-linear-gradient(top, #008ec6, #0074a2);
|
||||
background-image: -ms-linear-gradient(top, #008ec6, #0074a2);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #008ec6), color-stop(100%, #0074a2));
|
||||
background-image: -webkit-linear-gradient(top, #008ec6, #0074a2);
|
||||
background-image: -o-linear-gradient(top, #008ec6, #0074a2);
|
||||
background-image: linear-gradient(top, #008ec6, #0074a2);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='@from', endColorstr='@to', GradientType=0);
|
||||
border-color: #25b15f!important;
|
||||
border-color: #25b15f!important;
|
||||
-webkit-box-shadow: inset 0 1px 0 #00abef, 0 1px 0 rgba(0, 0, 0, .15);
|
||||
box-shadow: none!important;
|
||||
}
|
||||
|
||||
.redux-main .redux-typography-container .input_wrapper input.mini {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
-o-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
width: 78%;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
height: 35px;
|
||||
top: 3px;
|
||||
padding: 0 2px 0 5px;
|
||||
text-decoration: none;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.redux-container .form-table>tbody>tr>th {
|
||||
width: 35%;
|
||||
}
|
||||
|
||||
.admin-color-fresh #redux-header {
|
||||
background: #25b15f;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.redux-container #redux-header .display_header .redux-dev-mode-notice-container {display:none;}
|
||||
|
||||
.admin-color-fresh .redux-sidebar .redux-group-menu li.active a, .admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild a {
|
||||
color: #222;
|
||||
box-shadow: none;
|
||||
text-shadow: none!important;
|
||||
}
|
||||
|
||||
.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections a, .admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a {
|
||||
background: #fff;
|
||||
-webkit-transition: all .2s;
|
||||
-moz-transition: all .2s;
|
||||
transition: all .2s;
|
||||
color: #333;
|
||||
width: auto;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li, .admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li {
|
||||
border-top: 0 none !important
|
||||
}
|
||||
|
||||
.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a, .admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a {
|
||||
background: #e5e5e5!important;
|
||||
width: auto;
|
||||
border-top: 0 !important;
|
||||
padding: 7px;
|
||||
color: #333;
|
||||
padding-left: 15px;
|
||||
-webkit-transition: all .2;
|
||||
-moz-transition: all .2;
|
||||
-ms-transition: all .2;
|
||||
-o-transition: all .2;
|
||||
transition: all .2;
|
||||
}
|
||||
|
||||
.admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a, .wp-customizer .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a {
|
||||
background: #25b15f!important;
|
||||
color: #fff!important;
|
||||
}
|
||||
|
||||
.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections .active a:after, .admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .active a:after, .wp-customizer .redux-sidebar .redux-group-menu li.active.hasSubSections .active a:after, .wp-customizer .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .active a:after {
|
||||
display:none;
|
||||
}
|
||||
|
||||
.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a:hover, .admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a:hover {
|
||||
color: #25b15f!important;
|
||||
background: #e5e5e5!important;
|
||||
}
|
||||
|
||||
.admin-color-fresh .ui-state-default {
|
||||
line-height: 16px;
|
||||
}
|
||||
|
||||
.redux-main .wp-picker-container .wp-color-result {
|
||||
outline: 0;
|
||||
margin: 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.redux-container .wp-picker-container {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.redux-message.redux-notice {
|
||||
display: none!important;
|
||||
}
|
||||
1770
wp-content/themes/ekko/core/assets/css/bbpress.css
Normal file
5779
wp-content/themes/ekko/core/assets/css/bootstrap.min.css
vendored
Normal file
4
wp-content/themes/ekko/core/assets/css/font-awesome.min.css
vendored
Normal file
1
wp-content/themes/ekko/core/assets/css/iconsmind.min.css
vendored
Normal file
@@ -0,0 +1,483 @@
|
||||
/*! PhotoSwipe Default UI CSS by Dmitry Semenov | photoswipe.com | MIT license */
|
||||
/*
|
||||
|
||||
Contents:
|
||||
|
||||
1. Buttons
|
||||
2. Share modal and links
|
||||
3. Index indicator ("1 of X" counter)
|
||||
4. Caption
|
||||
5. Loading indicator
|
||||
6. Additional styles (root element, top bar, idle state, hidden state, etc.)
|
||||
|
||||
*/
|
||||
/*
|
||||
|
||||
1. Buttons
|
||||
|
||||
*/
|
||||
/* <button> css reset */
|
||||
.pswp__button {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
position: relative;
|
||||
background: none;
|
||||
cursor: pointer;
|
||||
overflow: visible;
|
||||
-webkit-appearance: none;
|
||||
display: block;
|
||||
border: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
float: right;
|
||||
opacity: 0.75;
|
||||
-webkit-transition: opacity 0.2s;
|
||||
transition: opacity 0.2s;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none; }
|
||||
.pswp__button:focus,
|
||||
.pswp__button:hover {
|
||||
opacity: 1; }
|
||||
.pswp__button:active {
|
||||
outline: none;
|
||||
opacity: 0.9; }
|
||||
.pswp__button::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border: 0; }
|
||||
|
||||
/* pswp__ui--over-close class it added when mouse is over element that should close gallery */
|
||||
.pswp__ui--over-close .pswp__button--close {
|
||||
opacity: 1; }
|
||||
|
||||
.pswp__button,
|
||||
.pswp__button--arrow--left:before,
|
||||
.pswp__button--arrow--right:before {
|
||||
background: url("../images/photoswipe/default-skin.png") 0 0 no-repeat;
|
||||
background-size: 264px 88px;
|
||||
width: 44px;
|
||||
height: 44px; }
|
||||
|
||||
@media (-webkit-min-device-pixel-ratio: 1.1), (-webkit-min-device-pixel-ratio: 1.09375), (min-resolution: 105dpi), (min-resolution: 1.1dppx) {
|
||||
/* Serve SVG sprite if browser supports SVG and resolution is more than 105dpi */
|
||||
.pswp--svg .pswp__button,
|
||||
.pswp--svg .pswp__button--arrow--left:before,
|
||||
.pswp--svg .pswp__button--arrow--right:before {
|
||||
background-image: url("../images/photoswipe/default-skin.svg"); }
|
||||
.pswp--svg .pswp__button--arrow--left,
|
||||
.pswp--svg .pswp__button--arrow--right {
|
||||
background: none; } }
|
||||
|
||||
.pswp__button--close {
|
||||
background-position: 0 -44px; }
|
||||
|
||||
.pswp__button--share {
|
||||
background-position: -44px -44px; }
|
||||
|
||||
.pswp__button--fs {
|
||||
display: none; }
|
||||
|
||||
.pswp--supports-fs .pswp__button--fs {
|
||||
display: block; }
|
||||
|
||||
.pswp--fs .pswp__button--fs {
|
||||
background-position: -44px 0; }
|
||||
|
||||
.pswp__button--zoom {
|
||||
display: none;
|
||||
background-position: -88px 0; }
|
||||
|
||||
.pswp--zoom-allowed .pswp__button--zoom {
|
||||
display: block; }
|
||||
|
||||
.pswp--zoomed-in .pswp__button--zoom {
|
||||
background-position: -132px 0; }
|
||||
|
||||
/* no arrows on touch screens */
|
||||
.pswp--touch .pswp__button--arrow--left,
|
||||
.pswp--touch .pswp__button--arrow--right {
|
||||
visibility: hidden; }
|
||||
|
||||
/*
|
||||
Arrow buttons hit area
|
||||
(icon is added to :before pseudo-element)
|
||||
*/
|
||||
.pswp__button--arrow--left,
|
||||
.pswp__button--arrow--right {
|
||||
background: none;
|
||||
top: 50%;
|
||||
margin-top: -50px;
|
||||
width: 70px;
|
||||
height: 100px;
|
||||
position: absolute; }
|
||||
|
||||
.pswp__button--arrow--left {
|
||||
left: 0; }
|
||||
|
||||
.pswp__button--arrow--right {
|
||||
right: 0; }
|
||||
|
||||
.pswp__button--arrow--left:before,
|
||||
.pswp__button--arrow--right:before {
|
||||
content: '';
|
||||
top: 35px;
|
||||
background-color: rgba(0, 0, 0, 0.3);
|
||||
height: 30px;
|
||||
width: 32px;
|
||||
position: absolute; }
|
||||
|
||||
.pswp__button--arrow--left:before {
|
||||
left: 6px;
|
||||
background-position: -138px -44px; }
|
||||
|
||||
.pswp__button--arrow--right:before {
|
||||
right: 6px;
|
||||
background-position: -94px -44px; }
|
||||
|
||||
/*
|
||||
|
||||
2. Share modal/popup and links
|
||||
|
||||
*/
|
||||
.pswp__counter,
|
||||
.pswp__share-modal {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none; }
|
||||
|
||||
.pswp__share-modal {
|
||||
display: block;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
padding: 10px;
|
||||
position: absolute;
|
||||
z-index: 1600;
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity 0.25s ease-out;
|
||||
transition: opacity 0.25s ease-out;
|
||||
-webkit-backface-visibility: hidden;
|
||||
will-change: opacity; }
|
||||
|
||||
.pswp__share-modal--hidden {
|
||||
display: none; }
|
||||
|
||||
.pswp__share-tooltip {
|
||||
z-index: 1620;
|
||||
position: absolute;
|
||||
background: #FFF;
|
||||
top: 56px;
|
||||
border-radius: 2px;
|
||||
display: block;
|
||||
width: auto;
|
||||
right: 44px;
|
||||
-webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
|
||||
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
|
||||
-webkit-transform: translateY(6px);
|
||||
-ms-transform: translateY(6px);
|
||||
transform: translateY(6px);
|
||||
-webkit-transition: -webkit-transform 0.25s;
|
||||
transition: transform 0.25s;
|
||||
-webkit-backface-visibility: hidden;
|
||||
will-change: transform; }
|
||||
.pswp__share-tooltip a {
|
||||
display: block;
|
||||
padding: 8px 12px;
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
line-height: 18px; }
|
||||
.pswp__share-tooltip a:hover {
|
||||
text-decoration: none;
|
||||
color: #000; }
|
||||
.pswp__share-tooltip a:first-child {
|
||||
/* round corners on the first/last list item */
|
||||
border-radius: 2px 2px 0 0; }
|
||||
.pswp__share-tooltip a:last-child {
|
||||
border-radius: 0 0 2px 2px; }
|
||||
|
||||
.pswp__share-modal--fade-in {
|
||||
opacity: 1; }
|
||||
.pswp__share-modal--fade-in .pswp__share-tooltip {
|
||||
-webkit-transform: translateY(0);
|
||||
-ms-transform: translateY(0);
|
||||
transform: translateY(0); }
|
||||
|
||||
/* increase size of share links on touch devices */
|
||||
.pswp--touch .pswp__share-tooltip a {
|
||||
padding: 16px 12px; }
|
||||
|
||||
a.pswp__share--facebook:before {
|
||||
content: '';
|
||||
display: block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
position: absolute;
|
||||
top: -12px;
|
||||
right: 15px;
|
||||
border: 6px solid transparent;
|
||||
border-bottom-color: #FFF;
|
||||
-webkit-pointer-events: none;
|
||||
-moz-pointer-events: none;
|
||||
pointer-events: none; }
|
||||
|
||||
a.pswp__share--facebook:hover {
|
||||
background: #3E5C9A;
|
||||
color: #FFF; }
|
||||
a.pswp__share--facebook:hover:before {
|
||||
border-bottom-color: #3E5C9A; }
|
||||
|
||||
a.pswp__share--twitter:hover {
|
||||
background: #55ACEE;
|
||||
color: #FFF; }
|
||||
|
||||
a.pswp__share--pinterest:hover {
|
||||
background: #CCC;
|
||||
color: #CE272D; }
|
||||
|
||||
a.pswp__share--download:hover {
|
||||
background: #DDD; }
|
||||
|
||||
/*
|
||||
|
||||
3. Index indicator ("1 of X" counter)
|
||||
|
||||
*/
|
||||
.pswp__counter {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
height: 44px;
|
||||
font-size: 13px;
|
||||
line-height: 44px;
|
||||
color: #FFF;
|
||||
opacity: 0.75;
|
||||
padding: 0 10px; }
|
||||
|
||||
/*
|
||||
|
||||
4. Caption
|
||||
|
||||
*/
|
||||
.pswp__caption {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
min-height: 44px; }
|
||||
.pswp__caption small {
|
||||
font-size: 11px;
|
||||
color: #BBB; }
|
||||
|
||||
.pswp__caption__center {
|
||||
text-align: left;
|
||||
max-width: 420px;
|
||||
margin: 0 auto;
|
||||
font-size: 13px;
|
||||
padding: 10px;
|
||||
line-height: 20px;
|
||||
color: #CCC; }
|
||||
|
||||
.pswp__caption--empty {
|
||||
display: none; }
|
||||
|
||||
/* Fake caption element, used to calculate height of next/prev image */
|
||||
.pswp__caption--fake {
|
||||
visibility: hidden; }
|
||||
|
||||
/*
|
||||
|
||||
5. Loading indicator (preloader)
|
||||
|
||||
You can play with it here - http://codepen.io/dimsemenov/pen/yyBWoR
|
||||
|
||||
*/
|
||||
.pswp__preloader {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 50%;
|
||||
margin-left: -22px;
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity 0.25s ease-out;
|
||||
transition: opacity 0.25s ease-out;
|
||||
will-change: opacity;
|
||||
direction: ltr; }
|
||||
|
||||
.pswp__preloader__icn {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
margin: 12px; }
|
||||
|
||||
.pswp__preloader--active {
|
||||
opacity: 1; }
|
||||
.pswp__preloader--active .pswp__preloader__icn {
|
||||
/* We use .gif in browsers that don't support CSS animation */
|
||||
background: url("../images/photoswipe/preloader.gif") 0 0 no-repeat; }
|
||||
|
||||
.pswp--css_animation .pswp__preloader--active {
|
||||
opacity: 1; }
|
||||
.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn {
|
||||
-webkit-animation: clockwise 500ms linear infinite;
|
||||
animation: clockwise 500ms linear infinite; }
|
||||
.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut {
|
||||
-webkit-animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;
|
||||
animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite; }
|
||||
|
||||
.pswp--css_animation .pswp__preloader__icn {
|
||||
background: none;
|
||||
opacity: 0.75;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
position: absolute;
|
||||
left: 15px;
|
||||
top: 15px;
|
||||
margin: 0; }
|
||||
|
||||
.pswp--css_animation .pswp__preloader__cut {
|
||||
/*
|
||||
The idea of animating inner circle is based on Polymer ("material") loading indicator
|
||||
by Keanu Lee https://blog.keanulee.com/2014/10/20/the-tale-of-three-spinners.html
|
||||
*/
|
||||
position: relative;
|
||||
width: 7px;
|
||||
height: 14px;
|
||||
overflow: hidden; }
|
||||
|
||||
.pswp--css_animation .pswp__preloader__donut {
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
border: 2px solid #FFF;
|
||||
border-radius: 50%;
|
||||
border-left-color: transparent;
|
||||
border-bottom-color: transparent;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background: none;
|
||||
margin: 0; }
|
||||
|
||||
@media screen and (max-width: 1024px) {
|
||||
.pswp__preloader {
|
||||
position: relative;
|
||||
left: auto;
|
||||
top: auto;
|
||||
margin: 0;
|
||||
float: right; } }
|
||||
|
||||
@-webkit-keyframes clockwise {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg); }
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); } }
|
||||
|
||||
@keyframes clockwise {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg); }
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); } }
|
||||
|
||||
@-webkit-keyframes donut-rotate {
|
||||
0% {
|
||||
-webkit-transform: rotate(0);
|
||||
transform: rotate(0); }
|
||||
50% {
|
||||
-webkit-transform: rotate(-140deg);
|
||||
transform: rotate(-140deg); }
|
||||
100% {
|
||||
-webkit-transform: rotate(0);
|
||||
transform: rotate(0); } }
|
||||
|
||||
@keyframes donut-rotate {
|
||||
0% {
|
||||
-webkit-transform: rotate(0);
|
||||
transform: rotate(0); }
|
||||
50% {
|
||||
-webkit-transform: rotate(-140deg);
|
||||
transform: rotate(-140deg); }
|
||||
100% {
|
||||
-webkit-transform: rotate(0);
|
||||
transform: rotate(0); } }
|
||||
|
||||
/*
|
||||
|
||||
6. Additional styles
|
||||
|
||||
*/
|
||||
/* root element of UI */
|
||||
.pswp__ui {
|
||||
-webkit-font-smoothing: auto;
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
z-index: 1550; }
|
||||
|
||||
/* top black bar with buttons and "1 of X" indicator */
|
||||
.pswp__top-bar {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
height: 44px;
|
||||
width: 100%; }
|
||||
|
||||
.pswp__caption,
|
||||
.pswp__top-bar,
|
||||
.pswp--has_mouse .pswp__button--arrow--left,
|
||||
.pswp--has_mouse .pswp__button--arrow--right {
|
||||
-webkit-backface-visibility: hidden;
|
||||
will-change: opacity;
|
||||
-webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
|
||||
transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }
|
||||
|
||||
/* pswp--has_mouse class is added only when two subsequent mousemove events occur */
|
||||
.pswp--has_mouse .pswp__button--arrow--left,
|
||||
.pswp--has_mouse .pswp__button--arrow--right {
|
||||
visibility: visible; }
|
||||
|
||||
.pswp__top-bar,
|
||||
.pswp__caption {
|
||||
background-color: rgba(0, 0, 0, 0.5); }
|
||||
|
||||
/* pswp__ui--fit class is added when main image "fits" between top bar and bottom bar (caption) */
|
||||
.pswp__ui--fit .pswp__top-bar,
|
||||
.pswp__ui--fit .pswp__caption {
|
||||
background-color: rgba(0, 0, 0, 0.3); }
|
||||
|
||||
/* pswp__ui--idle class is added when mouse isn't moving for several seconds (JS option timeToIdle) */
|
||||
.pswp__ui--idle .pswp__top-bar {
|
||||
opacity: 0; }
|
||||
|
||||
.pswp__ui--idle .pswp__button--arrow--left,
|
||||
.pswp__ui--idle .pswp__button--arrow--right {
|
||||
opacity: 0; }
|
||||
|
||||
/*
|
||||
pswp__ui--hidden class is added when controls are hidden
|
||||
e.g. when user taps to toggle visibility of controls
|
||||
*/
|
||||
.pswp__ui--hidden .pswp__top-bar,
|
||||
.pswp__ui--hidden .pswp__caption,
|
||||
.pswp__ui--hidden .pswp__button--arrow--left,
|
||||
.pswp__ui--hidden .pswp__button--arrow--right {
|
||||
/* Force paint & create composition layer for controls. */
|
||||
opacity: 0.001; }
|
||||
|
||||
/* pswp__ui--one-slide class is added when there is just one item in gallery */
|
||||
.pswp__ui--one-slide .pswp__button--arrow--left,
|
||||
.pswp__ui--one-slide .pswp__button--arrow--right,
|
||||
.pswp__ui--one-slide .pswp__counter {
|
||||
display: none; }
|
||||
|
||||
.pswp__element--disabled {
|
||||
display: none !important; }
|
||||
|
||||
.pswp--minimal--dark .pswp__top-bar {
|
||||
background: none; }
|
||||
178
wp-content/themes/ekko/core/assets/css/photoswipe.css
Normal file
@@ -0,0 +1,178 @@
|
||||
/*! PhotoSwipe main CSS by Dmitry Semenov | photoswipe.com | MIT license */
|
||||
/*
|
||||
Styles for basic PhotoSwipe functionality (sliding area, open/close transitions)
|
||||
*/
|
||||
/* pswp = photoswipe */
|
||||
.pswp {
|
||||
display: none;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
overflow: hidden;
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
z-index: 1500;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
/* create separate layer, to avoid paint on window.onscroll in webkit/blink */
|
||||
-webkit-backface-visibility: hidden;
|
||||
outline: none; }
|
||||
.pswp * {
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box; }
|
||||
.pswp img {
|
||||
max-width: none; }
|
||||
|
||||
/* style is added when JS option showHideOpacity is set to true */
|
||||
.pswp--animate_opacity {
|
||||
/* 0.001, because opacity:0 doesn't trigger Paint action, which causes lag at start of transition */
|
||||
opacity: 0.001;
|
||||
will-change: opacity;
|
||||
/* for open/close transition */
|
||||
-webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
|
||||
transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }
|
||||
|
||||
.pswp--open {
|
||||
display: block; }
|
||||
|
||||
.pswp--zoom-allowed .pswp__img {
|
||||
/* autoprefixer: off */
|
||||
cursor: -webkit-zoom-in;
|
||||
cursor: -moz-zoom-in;
|
||||
cursor: zoom-in; }
|
||||
|
||||
.pswp--zoomed-in .pswp__img {
|
||||
/* autoprefixer: off */
|
||||
cursor: -webkit-grab;
|
||||
cursor: -moz-grab;
|
||||
cursor: grab; }
|
||||
|
||||
.pswp--dragging .pswp__img {
|
||||
/* autoprefixer: off */
|
||||
cursor: -webkit-grabbing;
|
||||
cursor: -moz-grabbing;
|
||||
cursor: grabbing; }
|
||||
|
||||
/*
|
||||
Background is added as a separate element.
|
||||
As animating opacity is much faster than animating rgba() background-color.
|
||||
*/
|
||||
.pswp__bg {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #000;
|
||||
opacity: 0;
|
||||
transform: translateZ(0);
|
||||
-webkit-backface-visibility: hidden;
|
||||
will-change: opacity; }
|
||||
|
||||
.pswp__scroll-wrap {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden; }
|
||||
|
||||
.pswp__container,
|
||||
.pswp__zoom-wrap {
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0; }
|
||||
|
||||
/* Prevent selection and tap highlights */
|
||||
.pswp__container,
|
||||
.pswp__img {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
-webkit-touch-callout: none; }
|
||||
|
||||
.pswp__zoom-wrap {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
-webkit-transform-origin: left top;
|
||||
-ms-transform-origin: left top;
|
||||
transform-origin: left top;
|
||||
/* for open/close transition */
|
||||
-webkit-transition: -webkit-transform 333ms cubic-bezier(0.4, 0, 0.22, 1);
|
||||
transition: transform 333ms cubic-bezier(0.4, 0, 0.22, 1); }
|
||||
|
||||
.pswp__bg {
|
||||
will-change: opacity;
|
||||
/* for open/close transition */
|
||||
-webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
|
||||
transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }
|
||||
|
||||
.pswp--animated-in .pswp__bg,
|
||||
.pswp--animated-in .pswp__zoom-wrap {
|
||||
-webkit-transition: none;
|
||||
transition: none; }
|
||||
|
||||
.pswp__container,
|
||||
.pswp__zoom-wrap {
|
||||
-webkit-backface-visibility: hidden; }
|
||||
|
||||
.pswp__item {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
overflow: hidden; }
|
||||
|
||||
.pswp__img {
|
||||
position: absolute;
|
||||
width: auto;
|
||||
height: auto;
|
||||
top: 0;
|
||||
left: 0; }
|
||||
|
||||
/*
|
||||
stretched thumbnail or div placeholder element (see below)
|
||||
style is added to avoid flickering in webkit/blink when layers overlap
|
||||
*/
|
||||
.pswp__img--placeholder {
|
||||
-webkit-backface-visibility: hidden; }
|
||||
|
||||
/*
|
||||
div element that matches size of large image
|
||||
large image loads on top of it
|
||||
*/
|
||||
.pswp__img--placeholder--blank {
|
||||
background: #222; }
|
||||
|
||||
.pswp--ie .pswp__img {
|
||||
width: 100% !important;
|
||||
height: auto !important;
|
||||
left: 0;
|
||||
top: 0; }
|
||||
|
||||
/*
|
||||
Error message appears when image is not loaded
|
||||
(JS option errorMsg controls markup)
|
||||
*/
|
||||
.pswp__error-msg {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 50%;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
line-height: 16px;
|
||||
margin-top: -8px;
|
||||
color: #CCC; }
|
||||
|
||||
.pswp__error-msg a {
|
||||
color: #CCC;
|
||||
text-decoration: underline; }
|
||||
24
wp-content/themes/ekko/core/assets/css/shortcodes.css
Normal file
@@ -0,0 +1,24 @@
|
||||
i.mce-i-wp_code {
|
||||
padding: 0;
|
||||
vertical-align: top;
|
||||
speak: none;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
margin-left: -2px;
|
||||
padding-right: 2px;
|
||||
background-image: url('../../../images/fav-icon.png');
|
||||
}
|
||||
|
||||
.select-icon {
|
||||
position: fixed;
|
||||
float: left;
|
||||
width: 400px;
|
||||
margin-left: -200px;
|
||||
background: #fff;
|
||||
border: 1px solid #ccc;
|
||||
padding: 20px;
|
||||
left: 50%;
|
||||
height: 300px;
|
||||
z-index: 999;
|
||||
top: 50%;
|
||||
margin-top: -150px; }
|
||||
4994
wp-content/themes/ekko/core/assets/css/woocommerce.css
Normal file
@@ -0,0 +1,187 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Class Name: wp_bootstrap_navwalker
|
||||
* GitHub URI: https://github.com/twittem/wp-bootstrap-navwalker
|
||||
* Description: A custom WordPress nav walker class to implement the Bootstrap 3 navigation style in a custom theme using the WordPress built in menu manager.
|
||||
* Version: 2.0.4
|
||||
* Author: Edward McIntyre - @twittem
|
||||
* License: GPL-2.0+
|
||||
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
|
||||
*/
|
||||
|
||||
class wp_bootstrap_navwalker extends Walker_Nav_Menu {
|
||||
|
||||
/**
|
||||
* @see Walker::start_lvl()
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param string $output Passed by reference. Used to append additional content.
|
||||
* @param int $depth Depth of page. Used for padding.
|
||||
*/
|
||||
public function start_lvl( &$output, $depth = 0, $args = array() ) {
|
||||
$indent = str_repeat( "\t", $depth );
|
||||
$output .= "\n$indent<ul role=\"menu\" class=\" dropdown-menu\">\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* @see Walker::start_el()
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param string $output Passed by reference. Used to append additional content.
|
||||
* @param object $item Menu item data object.
|
||||
* @param int $depth Depth of menu item. Used for padding.
|
||||
* @param int $current_page Menu item ID.
|
||||
* @param object $args
|
||||
*/
|
||||
public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
|
||||
$indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
|
||||
|
||||
/**
|
||||
* Dividers, Headers or Disabled
|
||||
* =============================
|
||||
* Determine whether the item is a Divider, Header, Disabled or regular
|
||||
* menu item. To prevent errors we use the strcasecmp() function to so a
|
||||
* comparison that is not case sensitive. The strcasecmp() function returns
|
||||
* a 0 if the strings are equal.
|
||||
*/
|
||||
if ( strcasecmp( $item->attr_title, 'divider' ) == 0 && $depth === 1 ) {
|
||||
$output .= $indent . '<li role="presentation" class="divider">';
|
||||
} else if ( strcasecmp( $item->title, 'divider') == 0 && $depth === 1 ) {
|
||||
$output .= $indent . '<li role="presentation" class="divider">';
|
||||
} else if ( strcasecmp( $item->attr_title, 'dropdown-header') == 0 && $depth === 1 ) {
|
||||
$output .= $indent . '<li role="presentation" class="dropdown-header">' . esc_attr( $item->title );
|
||||
} else if ( strcasecmp($item->attr_title, 'disabled' ) == 0 ) {
|
||||
$output .= $indent . '<li role="presentation" class="disabled"><a href="#">' . esc_attr( $item->title ) . '</a>';
|
||||
} else {
|
||||
|
||||
$class_names = $value = '';
|
||||
|
||||
$classes = empty( $item->classes ) ? array() : (array) $item->classes;
|
||||
$classes[] = 'menu-item-' . $item->ID;
|
||||
|
||||
$class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args ) );
|
||||
|
||||
if ( $args->has_children )
|
||||
$class_names .= ' dropdown';
|
||||
|
||||
if ( in_array( 'current-menu-item', $classes ) )
|
||||
$class_names .= ' active';
|
||||
|
||||
$class_names = $class_names ? ' class="' . esc_attr( $class_names ) . '"' : '';
|
||||
|
||||
$id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->ID, $item, $args );
|
||||
$id = $id ? ' id="' . esc_attr( $id ) . '"' : '';
|
||||
|
||||
$output .= $indent . '<li' . $id . $value . $class_names .'>';
|
||||
|
||||
$atts = array();
|
||||
if ( empty( $item->attr_title ) ) {
|
||||
$atts['title'] = ! empty( $item->title ) ? strip_tags( $item->title ) : '';
|
||||
} else {
|
||||
$atts['title'] = $item->attr_title;
|
||||
}
|
||||
$atts['target'] = ! empty( $item->target ) ? $item->target : '';
|
||||
$atts['rel'] = ! empty( $item->xfn ) ? $item->xfn : '';
|
||||
|
||||
// If item has_children add atts to a.
|
||||
if ( $args->has_children && $depth === 0 ) {
|
||||
$atts['href'] = ! empty( $item->url ) ? $item->url : '';
|
||||
$atts['data-toggle'] = '';
|
||||
$atts['class'] = '';
|
||||
$atts['aria-haspopup'] = '';
|
||||
} else if ( $depth === 0 ) {
|
||||
$atts['href'] = ! empty( $item->url ) ? $item->url : '';
|
||||
}
|
||||
|
||||
else {
|
||||
$atts['href'] = ! empty( $item->url ) ? $item->url : '';
|
||||
}
|
||||
|
||||
|
||||
$atts = apply_filters( 'nav_menu_link_attributes', $atts, $item, $args );
|
||||
|
||||
$attributes = '';
|
||||
foreach ( $atts as $attr => $value ) {
|
||||
if ( ! empty( $value ) ) {
|
||||
$value = ( 'href' === $attr ) ? esc_url( $value ) : esc_attr( $value );
|
||||
$attributes .= ' ' . $attr . '="' . $value . '"';
|
||||
}
|
||||
}
|
||||
|
||||
$item_output = $args->before;
|
||||
|
||||
/*
|
||||
* Glyphicons
|
||||
* ===========
|
||||
* Since the the menu item is NOT a Divider or Header we check the see
|
||||
* if there is a value in the attr_title property. If the attr_title
|
||||
* property is NOT null we apply it as the class name for the glyphicon.
|
||||
*/
|
||||
if ( ! empty( $item->attr_title ) )
|
||||
$item_output .= '<a'. $attributes .'><span class="glyphicon ' . esc_attr( $item->attr_title ) . '"></span> ';
|
||||
else
|
||||
$item_output .= '<a'. $attributes .'>';
|
||||
|
||||
$item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after;
|
||||
$item_output .= ( $args->has_children && 0 === $depth ) ? '</a>' : '</a>';
|
||||
$item_output .= $args->after;
|
||||
|
||||
$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Traverse elements to create list from elements.
|
||||
*
|
||||
* Display one element if the element doesn't have any children otherwise,
|
||||
* display the element and its children. Will only traverse up to the max
|
||||
* depth and no ignore elements under that depth.
|
||||
*
|
||||
* This method shouldn't be called directly, use the walk() method instead.
|
||||
*
|
||||
* @see Walker::start_el()
|
||||
* @since 2.5.0
|
||||
*
|
||||
* @param object $element Data object
|
||||
* @param array $children_elements List of elements to continue traversing.
|
||||
* @param int $max_depth Max depth to traverse.
|
||||
* @param int $depth Depth of current element.
|
||||
* @param array $args
|
||||
* @param string $output Passed by reference. Used to append additional content.
|
||||
* @return null Null on failure with no changes to parameters.
|
||||
*/
|
||||
public function display_element( $element, &$children_elements, $max_depth, $depth, $args, &$output ) {
|
||||
if ( ! $element )
|
||||
return;
|
||||
|
||||
$id_field = $this->db_fields['id'];
|
||||
|
||||
// Display this element.
|
||||
if ( is_object( $args[0] ) )
|
||||
$args[0]->has_children = ! empty( $children_elements[ $element->$id_field ] );
|
||||
|
||||
parent::display_element( $element, $children_elements, $max_depth, $depth, $args, $output );
|
||||
}
|
||||
|
||||
/**
|
||||
* Menu Fallback
|
||||
* =============
|
||||
* If this function is assigned to the wp_nav_menu's fallback_cb variable
|
||||
* and a manu has not been assigned to the theme location in the WordPress
|
||||
* menu manager the function with display nothing to a non-logged in user,
|
||||
* and will add a link to the WordPress menu manager if logged in as an admin.
|
||||
*
|
||||
* @param array $args passed from the wp_nav_menu function.
|
||||
*
|
||||
*/
|
||||
public static function fallback( $args ) {
|
||||
if ( current_user_can( 'manage_options' ) ) {
|
||||
|
||||
extract( $args );
|
||||
echo '<ul class="nav navbar-nav"><li><a href="' . esc_url(admin_url( 'nav-menus.php' )) . '">Add a menu</a></li></ul>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
BIN
wp-content/themes/ekko/core/assets/fonts/fontawesome-webfont.eot
Normal file
BIN
wp-content/themes/ekko/core/assets/fonts/fontawesome-webfont.otf
Normal file
2671
wp-content/themes/ekko/core/assets/fonts/fontawesome-webfont.svg
Normal file
|
After Width: | Height: | Size: 434 KiB |
BIN
wp-content/themes/ekko/core/assets/fonts/fontawesome-webfont.ttf
Normal file
BIN
wp-content/themes/ekko/core/assets/fonts/iconsmind.eot
Normal file
BIN
wp-content/themes/ekko/core/assets/fonts/iconsmind.ttf
Normal file
BIN
wp-content/themes/ekko/core/assets/fonts/iconsmind.woff
Normal file
BIN
wp-content/themes/ekko/core/assets/fonts/star.eot
Normal file
19
wp-content/themes/ekko/core/assets/fonts/star.svg
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>
|
||||
This is a custom SVG font generated by IcoMoon.
|
||||
<iconset grid="16"></iconset>
|
||||
</metadata>
|
||||
<defs>
|
||||
<font id="icomoon" horiz-adv-x="512" >
|
||||
<font-face units-per-em="512" ascent="480" descent="-32" />
|
||||
<missing-glyph horiz-adv-x="512" />
|
||||
<glyph unicode="S" d="M 269.474,480.00L 352.509,311.757L 538.171,284.777L 403.822,153.824L 435.54-31.095L 269.474,56.21L 103.408-31.095L 135.119,153.824L 0.771,284.777L 186.438,311.757 z" horiz-adv-x="538.9473684210526" />
|
||||
<glyph unicode="s" d="M 269.474,406.94l 54.04-109.487l 7.524-15.247l 16.821-2.447l 120.827-17.559L 381.251,176.982l-12.18-11.868l 2.873-16.756l 20.647-120.336
|
||||
L 284.521,84.833L 269.474,92.745l-15.047-7.912L 146.351,28.017l 20.642,120.336l 2.873,16.756l-12.175,11.868L 70.263,262.201l 120.827,17.559
|
||||
l 16.826,2.447l 7.524,15.247L 269.474,406.94 M 269.474,480.00L 186.438,311.757l-185.667-26.98l 134.349-130.953l-31.717-184.918L 269.474,56.21l 166.066-87.304
|
||||
l-31.722,184.918l 134.354,130.953l-185.662,26.98L 269.474,480.00L 269.474,480.00z" horiz-adv-x="538.9473684210526" />
|
||||
<glyph unicode=" " horiz-adv-x="256" />
|
||||
<glyph class="hidden" unicode="" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
|
||||
</font></defs></svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
BIN
wp-content/themes/ekko/core/assets/fonts/star.ttf
Normal file
BIN
wp-content/themes/ekko/core/assets/fonts/star.woff
Normal file
33
wp-content/themes/ekko/core/assets/images/contact-loader.svg
Normal file
@@ -0,0 +1,33 @@
|
||||
<!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL -->
|
||||
<svg width="120" height="30" viewBox="0 0 120 30" xmlns="http://www.w3.org/2000/svg" fill="#fff">
|
||||
<circle cx="15" cy="15" r="15">
|
||||
<animate attributeName="r" from="15" to="15"
|
||||
begin="0s" dur="0.8s"
|
||||
values="15;9;15" calcMode="linear"
|
||||
repeatCount="indefinite" />
|
||||
<animate attributeName="fill-opacity" from="1" to="1"
|
||||
begin="0s" dur="0.8s"
|
||||
values="1;.5;1" calcMode="linear"
|
||||
repeatCount="indefinite" />
|
||||
</circle>
|
||||
<circle cx="60" cy="15" r="9" fill-opacity="0.3">
|
||||
<animate attributeName="r" from="9" to="9"
|
||||
begin="0s" dur="0.8s"
|
||||
values="9;15;9" calcMode="linear"
|
||||
repeatCount="indefinite" />
|
||||
<animate attributeName="fill-opacity" from="0.5" to="0.5"
|
||||
begin="0s" dur="0.8s"
|
||||
values=".5;1;.5" calcMode="linear"
|
||||
repeatCount="indefinite" />
|
||||
</circle>
|
||||
<circle cx="105" cy="15" r="15">
|
||||
<animate attributeName="r" from="15" to="15"
|
||||
begin="0s" dur="0.8s"
|
||||
values="15;9;15" calcMode="linear"
|
||||
repeatCount="indefinite" />
|
||||
<animate attributeName="fill-opacity" from="1" to="1"
|
||||
begin="0s" dur="0.8s"
|
||||
values="1;.5;1" calcMode="linear"
|
||||
repeatCount="indefinite" />
|
||||
</circle>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
BIN
wp-content/themes/ekko/core/assets/images/favicon.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 91.3 91.1" enable-background="new 0 0 91.3 91.1" xml:space="preserve">
|
||||
<circle cx="45.7" cy="45.7" r="45.7"/>
|
||||
<circle fill="#FFFFFF" cx="45.7" cy="24.4" r="12.5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 545 B |
BIN
wp-content/themes/ekko/core/assets/images/icons/select-arrow.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 547 B |
@@ -0,0 +1 @@
|
||||
<svg width="264" height="88" viewBox="0 0 264 88" xmlns="http://www.w3.org/2000/svg"><title>default-skin 2</title><g fill="none" fill-rule="evenodd"><g><path d="M67.002 59.5v3.768c-6.307.84-9.184 5.75-10.002 9.732 2.22-2.83 5.564-5.098 10.002-5.098V71.5L73 65.585 67.002 59.5z" id="Shape" fill="#fff"/><g fill="#fff"><path d="M13 29v-5h2v3h3v2h-5zM13 15h5v2h-3v3h-2v-5zM31 15v5h-2v-3h-3v-2h5zM31 29h-5v-2h3v-3h2v5z" id="Shape"/></g><g fill="#fff"><path d="M62 24v5h-2v-3h-3v-2h5zM62 20h-5v-2h3v-3h2v5zM70 20v-5h2v3h3v2h-5zM70 24h5v2h-3v3h-2v-5z"/></g><path d="M20.586 66l-5.656-5.656 1.414-1.414L22 64.586l5.656-5.656 1.414 1.414L23.414 66l5.656 5.656-1.414 1.414L22 67.414l-5.656 5.656-1.414-1.414L20.586 66z" fill="#fff"/><path d="M111.785 65.03L110 63.5l3-3.5h-10v-2h10l-3-3.5 1.785-1.468L117 59l-5.215 6.03z" fill="#fff"/><path d="M152.215 65.03L154 63.5l-3-3.5h10v-2h-10l3-3.5-1.785-1.468L147 59l5.215 6.03z" fill="#fff"/><g><path id="Rectangle-11" fill="#fff" d="M160.957 28.543l-3.25-3.25-1.413 1.414 3.25 3.25z"/><path d="M152.5 27c3.038 0 5.5-2.462 5.5-5.5s-2.462-5.5-5.5-5.5-5.5 2.462-5.5 5.5 2.462 5.5 5.5 5.5z" id="Oval-1" stroke="#fff" stroke-width="1.5"/><path fill="#fff" d="M150 21h5v1h-5z"/></g><g><path d="M116.957 28.543l-1.414 1.414-3.25-3.25 1.414-1.414 3.25 3.25z" fill="#fff"/><path d="M108.5 27c3.038 0 5.5-2.462 5.5-5.5s-2.462-5.5-5.5-5.5-5.5 2.462-5.5 5.5 2.462 5.5 5.5 5.5z" stroke="#fff" stroke-width="1.5"/><path fill="#fff" d="M106 21h5v1h-5z"/><path fill="#fff" d="M109.043 19.008l-.085 5-1-.017.085-5z"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 866 B |
788
wp-content/themes/ekko/core/assets/js/SmoothScroll.js
Normal file
@@ -0,0 +1,788 @@
|
||||
//
|
||||
// SmoothScroll for websites v1.4.9 (Balazs Galambosi)
|
||||
// http://www.smoothscroll.net/
|
||||
//
|
||||
// Licensed under the terms of the MIT license.
|
||||
//
|
||||
// You may use it in your theme if you credit me.
|
||||
// It is also free to use on any individual website.
|
||||
//
|
||||
// Exception:
|
||||
// The only restriction is to not publish any
|
||||
// extension for browsers or native application
|
||||
// without getting a written permission first.
|
||||
//
|
||||
|
||||
(function () {
|
||||
|
||||
// Scroll Variables (tweakable)
|
||||
var defaultOptions = {
|
||||
|
||||
// Scrolling Core
|
||||
frameRate : 150, // [Hz]
|
||||
animationTime : 400, // [ms]
|
||||
stepSize : 100, // [px]
|
||||
|
||||
// Pulse (less tweakable)
|
||||
// ratio of "tail" to "acceleration"
|
||||
pulseAlgorithm : true,
|
||||
pulseScale : 4,
|
||||
pulseNormalize : 1,
|
||||
|
||||
// Acceleration
|
||||
accelerationDelta : 50, // 50
|
||||
accelerationMax : 3, // 3
|
||||
|
||||
// Keyboard Settings
|
||||
keyboardSupport : true, // option
|
||||
arrowScroll : 50, // [px]
|
||||
|
||||
// Other
|
||||
fixedBackground : true,
|
||||
excluded : ''
|
||||
};
|
||||
|
||||
var options = defaultOptions;
|
||||
|
||||
|
||||
// Other Variables
|
||||
var isExcluded = false;
|
||||
var isFrame = false;
|
||||
var direction = { x: 0, y: 0 };
|
||||
var initDone = false;
|
||||
var root = document.documentElement;
|
||||
var activeElement;
|
||||
var observer;
|
||||
var refreshSize;
|
||||
var deltaBuffer = [];
|
||||
var deltaBufferTimer;
|
||||
var isMac = /^Mac/.test(navigator.platform);
|
||||
|
||||
var key = { left: 37, up: 38, right: 39, down: 40, spacebar: 32,
|
||||
pageup: 33, pagedown: 34, end: 35, home: 36 };
|
||||
var arrowKeys = { 37: 1, 38: 1, 39: 1, 40: 1 };
|
||||
|
||||
/***********************************************
|
||||
* INITIALIZE
|
||||
***********************************************/
|
||||
|
||||
/**
|
||||
* Tests if smooth scrolling is allowed. Shuts down everything if not.
|
||||
*/
|
||||
function initTest() {
|
||||
if (options.keyboardSupport) {
|
||||
addEvent('keydown', keydown);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up scrolls array, determines if frames are involved.
|
||||
*/
|
||||
function init() {
|
||||
|
||||
if (initDone || !document.body) return;
|
||||
|
||||
initDone = true;
|
||||
|
||||
var body = document.body;
|
||||
var html = document.documentElement;
|
||||
var windowHeight = window.innerHeight;
|
||||
var scrollHeight = body.scrollHeight;
|
||||
|
||||
// check compat mode for root element
|
||||
root = (document.compatMode.indexOf('CSS') >= 0) ? html : body;
|
||||
activeElement = body;
|
||||
|
||||
initTest();
|
||||
|
||||
// Checks if this script is running in a frame
|
||||
if (top != self) {
|
||||
isFrame = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Safari 10 fixed it, Chrome fixed it in v45:
|
||||
* This fixes a bug where the areas left and right to
|
||||
* the content does not trigger the onmousewheel event
|
||||
* on some pages. e.g.: html, body { height: 100% }
|
||||
*/
|
||||
else if (isOldSafari &&
|
||||
scrollHeight > windowHeight &&
|
||||
(body.offsetHeight <= windowHeight ||
|
||||
html.offsetHeight <= windowHeight)) {
|
||||
|
||||
var fullPageElem = document.createElement('div');
|
||||
fullPageElem.style.cssText = 'position:absolute; z-index:-10000; ' +
|
||||
'top:0; left:0; right:0; height:' +
|
||||
root.scrollHeight + 'px';
|
||||
document.body.appendChild(fullPageElem);
|
||||
|
||||
// DOM changed (throttled) to fix height
|
||||
var pendingRefresh;
|
||||
refreshSize = function () {
|
||||
if (pendingRefresh) return; // could also be: clearTimeout(pendingRefresh);
|
||||
pendingRefresh = setTimeout(function () {
|
||||
if (isExcluded) return; // could be running after cleanup
|
||||
fullPageElem.style.height = '0';
|
||||
fullPageElem.style.height = root.scrollHeight + 'px';
|
||||
pendingRefresh = null;
|
||||
}, 500); // act rarely to stay fast
|
||||
};
|
||||
|
||||
setTimeout(refreshSize, 10);
|
||||
|
||||
addEvent('resize', refreshSize);
|
||||
|
||||
// TODO: attributeFilter?
|
||||
var config = {
|
||||
attributes: true,
|
||||
childList: true,
|
||||
characterData: false
|
||||
// subtree: true
|
||||
};
|
||||
|
||||
observer = new MutationObserver(refreshSize);
|
||||
observer.observe(body, config);
|
||||
|
||||
if (root.offsetHeight <= windowHeight) {
|
||||
var clearfix = document.createElement('div');
|
||||
clearfix.style.clear = 'both';
|
||||
body.appendChild(clearfix);
|
||||
}
|
||||
}
|
||||
|
||||
// disable fixed background
|
||||
if (!options.fixedBackground && !isExcluded) {
|
||||
body.style.backgroundAttachment = 'scroll';
|
||||
html.style.backgroundAttachment = 'scroll';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes event listeners and other traces left on the page.
|
||||
*/
|
||||
function cleanup() {
|
||||
observer && observer.disconnect();
|
||||
removeEvent(wheelEvent, wheel);
|
||||
removeEvent('mousedown', mousedown);
|
||||
removeEvent('keydown', keydown);
|
||||
removeEvent('resize', refreshSize);
|
||||
removeEvent('load', init);
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
* SCROLLING
|
||||
************************************************/
|
||||
|
||||
var que = [];
|
||||
var pending = false;
|
||||
var lastScroll = Date.now();
|
||||
|
||||
/**
|
||||
* Pushes scroll actions to the scrolling queue.
|
||||
*/
|
||||
function scrollArray(elem, left, top) {
|
||||
|
||||
directionCheck(left, top);
|
||||
|
||||
if (options.accelerationMax != 1) {
|
||||
var now = Date.now();
|
||||
var elapsed = now - lastScroll;
|
||||
if (elapsed < options.accelerationDelta) {
|
||||
var factor = (1 + (50 / elapsed)) / 2;
|
||||
if (factor > 1) {
|
||||
factor = Math.min(factor, options.accelerationMax);
|
||||
left *= factor;
|
||||
top *= factor;
|
||||
}
|
||||
}
|
||||
lastScroll = Date.now();
|
||||
}
|
||||
|
||||
// push a scroll command
|
||||
que.push({
|
||||
x: left,
|
||||
y: top,
|
||||
lastX: (left < 0) ? 0.99 : -0.99,
|
||||
lastY: (top < 0) ? 0.99 : -0.99,
|
||||
start: Date.now()
|
||||
});
|
||||
|
||||
// don't act if there's a pending queue
|
||||
if (pending) {
|
||||
return;
|
||||
}
|
||||
|
||||
var scrollRoot = getScrollRoot();
|
||||
var isWindowScroll = (elem === scrollRoot || elem === document.body);
|
||||
|
||||
// if we haven't already fixed the behavior,
|
||||
// and it needs fixing for this sesh
|
||||
if (elem.$scrollBehavior == null && isScrollBehaviorSmooth(elem)) {
|
||||
elem.$scrollBehavior = elem.style.scrollBehavior;
|
||||
elem.style.scrollBehavior = 'auto';
|
||||
}
|
||||
|
||||
var step = function (time) {
|
||||
|
||||
var now = Date.now();
|
||||
var scrollX = 0;
|
||||
var scrollY = 0;
|
||||
|
||||
for (var i = 0; i < que.length; i++) {
|
||||
|
||||
var item = que[i];
|
||||
var elapsed = now - item.start;
|
||||
var finished = (elapsed >= options.animationTime);
|
||||
|
||||
// scroll position: [0, 1]
|
||||
var position = (finished) ? 1 : elapsed / options.animationTime;
|
||||
|
||||
// easing [optional]
|
||||
if (options.pulseAlgorithm) {
|
||||
position = pulse(position);
|
||||
}
|
||||
|
||||
// only need the difference
|
||||
var x = (item.x * position - item.lastX) >> 0;
|
||||
var y = (item.y * position - item.lastY) >> 0;
|
||||
|
||||
// add this to the total scrolling
|
||||
scrollX += x;
|
||||
scrollY += y;
|
||||
|
||||
// update last values
|
||||
item.lastX += x;
|
||||
item.lastY += y;
|
||||
|
||||
// delete and step back if it's over
|
||||
if (finished) {
|
||||
que.splice(i, 1); i--;
|
||||
}
|
||||
}
|
||||
|
||||
// scroll left and top
|
||||
if (isWindowScroll) {
|
||||
window.scrollBy(scrollX, scrollY);
|
||||
}
|
||||
else {
|
||||
if (scrollX) elem.scrollLeft += scrollX;
|
||||
if (scrollY) elem.scrollTop += scrollY;
|
||||
}
|
||||
|
||||
// clean up if there's nothing left to do
|
||||
if (!left && !top) {
|
||||
que = [];
|
||||
}
|
||||
|
||||
if (que.length) {
|
||||
requestFrame(step, elem, (1000 / options.frameRate + 1));
|
||||
} else {
|
||||
pending = false;
|
||||
// restore default behavior at the end of scrolling sesh
|
||||
if (elem.$scrollBehavior != null) {
|
||||
elem.style.scrollBehavior = elem.$scrollBehavior;
|
||||
elem.$scrollBehavior = null;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// start a new queue of actions
|
||||
requestFrame(step, elem, 0);
|
||||
pending = true;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************
|
||||
* EVENTS
|
||||
***********************************************/
|
||||
|
||||
/**
|
||||
* Mouse wheel handler.
|
||||
* @param {Object} event
|
||||
*/
|
||||
function wheel(event) {
|
||||
|
||||
if (!initDone) {
|
||||
init();
|
||||
}
|
||||
|
||||
var target = event.target;
|
||||
|
||||
// leave early if default action is prevented
|
||||
// or it's a zooming event with CTRL
|
||||
if (event.defaultPrevented || event.ctrlKey) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// leave embedded content alone (flash & pdf)
|
||||
if (isNodeName(activeElement, 'embed') ||
|
||||
(isNodeName(target, 'embed') && /\.pdf/i.test(target.src)) ||
|
||||
isNodeName(activeElement, 'object') ||
|
||||
target.shadowRoot) {
|
||||
return true;
|
||||
}
|
||||
|
||||
var deltaX = -event.wheelDeltaX || event.deltaX || 0;
|
||||
var deltaY = -event.wheelDeltaY || event.deltaY || 0;
|
||||
|
||||
if (isMac) {
|
||||
if (event.wheelDeltaX && isDivisible(event.wheelDeltaX, 120)) {
|
||||
deltaX = -120 * (event.wheelDeltaX / Math.abs(event.wheelDeltaX));
|
||||
}
|
||||
if (event.wheelDeltaY && isDivisible(event.wheelDeltaY, 120)) {
|
||||
deltaY = -120 * (event.wheelDeltaY / Math.abs(event.wheelDeltaY));
|
||||
}
|
||||
}
|
||||
|
||||
// use wheelDelta if deltaX/Y is not available
|
||||
if (!deltaX && !deltaY) {
|
||||
deltaY = -event.wheelDelta || 0;
|
||||
}
|
||||
|
||||
// line based scrolling (Firefox mostly)
|
||||
if (event.deltaMode === 1) {
|
||||
deltaX *= 40;
|
||||
deltaY *= 40;
|
||||
}
|
||||
|
||||
var overflowing = overflowingAncestor(target);
|
||||
|
||||
// nothing to do if there's no element that's scrollable
|
||||
if (!overflowing) {
|
||||
// except Chrome iframes seem to eat wheel events, which we need to
|
||||
// propagate up, if the iframe has nothing overflowing to scroll
|
||||
if (isFrame && isChrome) {
|
||||
// change target to iframe element itself for the parent frame
|
||||
Object.defineProperty(event, "target", {value: window.frameElement});
|
||||
return parent.wheel(event);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// check if it's a touchpad scroll that should be ignored
|
||||
if (isTouchpad(deltaY)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// scale by step size
|
||||
// delta is 120 most of the time
|
||||
// synaptics seems to send 1 sometimes
|
||||
if (Math.abs(deltaX) > 1.2) {
|
||||
deltaX *= options.stepSize / 120;
|
||||
}
|
||||
if (Math.abs(deltaY) > 1.2) {
|
||||
deltaY *= options.stepSize / 120;
|
||||
}
|
||||
|
||||
scrollArray(overflowing, deltaX, deltaY);
|
||||
event.preventDefault();
|
||||
scheduleClearCache();
|
||||
}
|
||||
|
||||
/**
|
||||
* Keydown event handler.
|
||||
* @param {Object} event
|
||||
*/
|
||||
function keydown(event) {
|
||||
|
||||
var target = event.target;
|
||||
var modifier = event.ctrlKey || event.altKey || event.metaKey ||
|
||||
(event.shiftKey && event.keyCode !== key.spacebar);
|
||||
|
||||
// our own tracked active element could've been removed from the DOM
|
||||
if (!document.body.contains(activeElement)) {
|
||||
activeElement = document.activeElement;
|
||||
}
|
||||
|
||||
// do nothing if user is editing text
|
||||
// or using a modifier key (except shift)
|
||||
// or in a dropdown
|
||||
// or inside interactive elements
|
||||
var inputNodeNames = /^(textarea|select|embed|object)$/i;
|
||||
var buttonTypes = /^(button|submit|radio|checkbox|file|color|image)$/i;
|
||||
if ( event.defaultPrevented ||
|
||||
inputNodeNames.test(target.nodeName) ||
|
||||
isNodeName(target, 'input') && !buttonTypes.test(target.type) ||
|
||||
isNodeName(activeElement, 'video') ||
|
||||
isInsideYoutubeVideo(event) ||
|
||||
target.isContentEditable ||
|
||||
modifier ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// [spacebar] should trigger button press, leave it alone
|
||||
if ((isNodeName(target, 'button') ||
|
||||
isNodeName(target, 'input') && buttonTypes.test(target.type)) &&
|
||||
event.keyCode === key.spacebar) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// [arrwow keys] on radio buttons should be left alone
|
||||
if (isNodeName(target, 'input') && target.type == 'radio' &&
|
||||
arrowKeys[event.keyCode]) {
|
||||
return true;
|
||||
}
|
||||
|
||||
var shift, x = 0, y = 0;
|
||||
var overflowing = overflowingAncestor(activeElement);
|
||||
|
||||
if (!overflowing) {
|
||||
// Chrome iframes seem to eat key events, which we need to
|
||||
// propagate up, if the iframe has nothing overflowing to scroll
|
||||
return (isFrame && isChrome) ? parent.keydown(event) : true;
|
||||
}
|
||||
|
||||
var clientHeight = overflowing.clientHeight;
|
||||
|
||||
if (overflowing == document.body) {
|
||||
clientHeight = window.innerHeight;
|
||||
}
|
||||
|
||||
switch (event.keyCode) {
|
||||
case key.up:
|
||||
y = -options.arrowScroll;
|
||||
break;
|
||||
case key.down:
|
||||
y = options.arrowScroll;
|
||||
break;
|
||||
case key.spacebar: // (+ shift)
|
||||
shift = event.shiftKey ? 1 : -1;
|
||||
y = -shift * clientHeight * 0.9;
|
||||
break;
|
||||
case key.pageup:
|
||||
y = -clientHeight * 0.9;
|
||||
break;
|
||||
case key.pagedown:
|
||||
y = clientHeight * 0.9;
|
||||
break;
|
||||
case key.home:
|
||||
if (overflowing == document.body && document.scrollingElement)
|
||||
overflowing = document.scrollingElement;
|
||||
y = -overflowing.scrollTop;
|
||||
break;
|
||||
case key.end:
|
||||
var scroll = overflowing.scrollHeight - overflowing.scrollTop;
|
||||
var scrollRemaining = scroll - clientHeight;
|
||||
y = (scrollRemaining > 0) ? scrollRemaining + 10 : 0;
|
||||
break;
|
||||
case key.left:
|
||||
x = -options.arrowScroll;
|
||||
break;
|
||||
case key.right:
|
||||
x = options.arrowScroll;
|
||||
break;
|
||||
default:
|
||||
return true; // a key we don't care about
|
||||
}
|
||||
|
||||
scrollArray(overflowing, x, y);
|
||||
event.preventDefault();
|
||||
scheduleClearCache();
|
||||
}
|
||||
|
||||
/**
|
||||
* Mousedown event only for updating activeElement
|
||||
*/
|
||||
function mousedown(event) {
|
||||
activeElement = event.target;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************
|
||||
* OVERFLOW
|
||||
***********************************************/
|
||||
|
||||
var uniqueID = (function () {
|
||||
var i = 0;
|
||||
return function (el) {
|
||||
return el.uniqueID || (el.uniqueID = i++);
|
||||
};
|
||||
})();
|
||||
|
||||
var cacheX = {}; // cleared out after a scrolling session
|
||||
var cacheY = {}; // cleared out after a scrolling session
|
||||
var clearCacheTimer;
|
||||
var smoothBehaviorForElement = {};
|
||||
|
||||
//setInterval(function () { cache = {}; }, 10 * 1000);
|
||||
|
||||
function scheduleClearCache() {
|
||||
clearTimeout(clearCacheTimer);
|
||||
clearCacheTimer = setInterval(function () {
|
||||
cacheX = cacheY = smoothBehaviorForElement = {};
|
||||
}, 1*1000);
|
||||
}
|
||||
|
||||
function setCache(elems, overflowing, x) {
|
||||
var cache = x ? cacheX : cacheY;
|
||||
for (var i = elems.length; i--;)
|
||||
cache[uniqueID(elems[i])] = overflowing;
|
||||
return overflowing;
|
||||
}
|
||||
|
||||
function getCache(el, x) {
|
||||
return (x ? cacheX : cacheY)[uniqueID(el)];
|
||||
}
|
||||
|
||||
// (body) (root)
|
||||
// | hidden | visible | scroll | auto |
|
||||
// hidden | no | no | YES | YES |
|
||||
// visible | no | YES | YES | YES |
|
||||
// scroll | no | YES | YES | YES |
|
||||
// auto | no | YES | YES | YES |
|
||||
|
||||
function overflowingAncestor(el) {
|
||||
var elems = [];
|
||||
var body = document.body;
|
||||
var rootScrollHeight = root.scrollHeight;
|
||||
do {
|
||||
var cached = getCache(el, false);
|
||||
if (cached) {
|
||||
return setCache(elems, cached);
|
||||
}
|
||||
elems.push(el);
|
||||
if (rootScrollHeight === el.scrollHeight) {
|
||||
var topOverflowsNotHidden = overflowNotHidden(root) && overflowNotHidden(body);
|
||||
var isOverflowCSS = topOverflowsNotHidden || overflowAutoOrScroll(root);
|
||||
if (isFrame && isContentOverflowing(root) ||
|
||||
!isFrame && isOverflowCSS) {
|
||||
return setCache(elems, getScrollRoot());
|
||||
}
|
||||
} else if (isContentOverflowing(el) && overflowAutoOrScroll(el)) {
|
||||
return setCache(elems, el);
|
||||
}
|
||||
} while ((el = el.parentElement));
|
||||
}
|
||||
|
||||
function isContentOverflowing(el) {
|
||||
return (el.clientHeight + 10 < el.scrollHeight);
|
||||
}
|
||||
|
||||
// typically for <body> and <html>
|
||||
function overflowNotHidden(el) {
|
||||
var overflow = getComputedStyle(el, '').getPropertyValue('overflow-y');
|
||||
return (overflow !== 'hidden');
|
||||
}
|
||||
|
||||
// for all other elements
|
||||
function overflowAutoOrScroll(el) {
|
||||
var overflow = getComputedStyle(el, '').getPropertyValue('overflow-y');
|
||||
return (overflow === 'scroll' || overflow === 'auto');
|
||||
}
|
||||
|
||||
// for all other elements
|
||||
function isScrollBehaviorSmooth(el) {
|
||||
var id = uniqueID(el);
|
||||
if (smoothBehaviorForElement[id] == null) {
|
||||
var scrollBehavior = getComputedStyle(el, '')['scroll-behavior'];
|
||||
smoothBehaviorForElement[id] = ('smooth' == scrollBehavior);
|
||||
}
|
||||
return smoothBehaviorForElement[id];
|
||||
}
|
||||
|
||||
|
||||
/***********************************************
|
||||
* HELPERS
|
||||
***********************************************/
|
||||
|
||||
function addEvent(type, fn, arg) {
|
||||
window.addEventListener(type, fn, arg || false);
|
||||
}
|
||||
|
||||
function removeEvent(type, fn, arg) {
|
||||
window.removeEventListener(type, fn, arg || false);
|
||||
}
|
||||
|
||||
function isNodeName(el, tag) {
|
||||
return el && (el.nodeName||'').toLowerCase() === tag.toLowerCase();
|
||||
}
|
||||
|
||||
function directionCheck(x, y) {
|
||||
x = (x > 0) ? 1 : -1;
|
||||
y = (y > 0) ? 1 : -1;
|
||||
if (direction.x !== x || direction.y !== y) {
|
||||
direction.x = x;
|
||||
direction.y = y;
|
||||
que = [];
|
||||
lastScroll = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (window.localStorage && localStorage.SS_deltaBuffer) {
|
||||
try { // #46 Safari throws in private browsing for localStorage
|
||||
deltaBuffer = localStorage.SS_deltaBuffer.split(',');
|
||||
} catch (e) { }
|
||||
}
|
||||
|
||||
function isTouchpad(deltaY) {
|
||||
if (!deltaY) return;
|
||||
if (!deltaBuffer.length) {
|
||||
deltaBuffer = [deltaY, deltaY, deltaY];
|
||||
}
|
||||
deltaY = Math.abs(deltaY);
|
||||
deltaBuffer.push(deltaY);
|
||||
deltaBuffer.shift();
|
||||
clearTimeout(deltaBufferTimer);
|
||||
deltaBufferTimer = setTimeout(function () {
|
||||
try { // #46 Safari throws in private browsing for localStorage
|
||||
localStorage.SS_deltaBuffer = deltaBuffer.join(',');
|
||||
} catch (e) { }
|
||||
}, 1000);
|
||||
var dpiScaledWheelDelta = deltaY > 120 && allDeltasDivisableBy(deltaY); // win64
|
||||
return !allDeltasDivisableBy(120) && !allDeltasDivisableBy(100) && !dpiScaledWheelDelta;
|
||||
}
|
||||
|
||||
function isDivisible(n, divisor) {
|
||||
return (Math.floor(n / divisor) == n / divisor);
|
||||
}
|
||||
|
||||
function allDeltasDivisableBy(divisor) {
|
||||
return (isDivisible(deltaBuffer[0], divisor) &&
|
||||
isDivisible(deltaBuffer[1], divisor) &&
|
||||
isDivisible(deltaBuffer[2], divisor));
|
||||
}
|
||||
|
||||
function isInsideYoutubeVideo(event) {
|
||||
var elem = event.target;
|
||||
var isControl = false;
|
||||
if (document.URL.indexOf ('www.youtube.com/watch') != -1) {
|
||||
do {
|
||||
isControl = (elem.classList &&
|
||||
elem.classList.contains('html5-video-controls'));
|
||||
if (isControl) break;
|
||||
} while ((elem = elem.parentNode));
|
||||
}
|
||||
return isControl;
|
||||
}
|
||||
|
||||
var requestFrame = (function () {
|
||||
return (window.requestAnimationFrame ||
|
||||
window.webkitRequestAnimationFrame ||
|
||||
window.mozRequestAnimationFrame ||
|
||||
function (callback, element, delay) {
|
||||
window.setTimeout(callback, delay || (1000/60));
|
||||
});
|
||||
})();
|
||||
|
||||
var MutationObserver = (window.MutationObserver ||
|
||||
window.WebKitMutationObserver ||
|
||||
window.MozMutationObserver);
|
||||
|
||||
var getScrollRoot = (function() {
|
||||
var SCROLL_ROOT = document.scrollingElement;
|
||||
return function() {
|
||||
if (!SCROLL_ROOT) {
|
||||
var dummy = document.createElement('div');
|
||||
dummy.style.cssText = 'height:10000px;width:1px;';
|
||||
document.body.appendChild(dummy);
|
||||
var bodyScrollTop = document.body.scrollTop;
|
||||
var docElScrollTop = document.documentElement.scrollTop;
|
||||
window.scrollBy(0, 3);
|
||||
if (document.body.scrollTop != bodyScrollTop)
|
||||
(SCROLL_ROOT = document.body);
|
||||
else
|
||||
(SCROLL_ROOT = document.documentElement);
|
||||
window.scrollBy(0, -3);
|
||||
document.body.removeChild(dummy);
|
||||
}
|
||||
return SCROLL_ROOT;
|
||||
};
|
||||
})();
|
||||
|
||||
|
||||
/***********************************************
|
||||
* PULSE (by Michael Herf)
|
||||
***********************************************/
|
||||
|
||||
/**
|
||||
* Viscous fluid with a pulse for part and decay for the rest.
|
||||
* - Applies a fixed force over an interval (a damped acceleration), and
|
||||
* - Lets the exponential bleed away the velocity over a longer interval
|
||||
* - Michael Herf, http://stereopsis.com/stopping/
|
||||
*/
|
||||
function pulse_(x) {
|
||||
var val, start, expx;
|
||||
// test
|
||||
x = x * options.pulseScale;
|
||||
if (x < 1) { // acceleartion
|
||||
val = x - (1 - Math.exp(-x));
|
||||
} else { // tail
|
||||
// the previous animation ended here:
|
||||
start = Math.exp(-1);
|
||||
// simple viscous drag
|
||||
x -= 1;
|
||||
expx = 1 - Math.exp(-x);
|
||||
val = start + (expx * (1 - start));
|
||||
}
|
||||
return val * options.pulseNormalize;
|
||||
}
|
||||
|
||||
function pulse(x) {
|
||||
if (x >= 1) return 1;
|
||||
if (x <= 0) return 0;
|
||||
|
||||
if (options.pulseNormalize == 1) {
|
||||
options.pulseNormalize /= pulse_(1);
|
||||
}
|
||||
return pulse_(x);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************
|
||||
* FIRST RUN
|
||||
***********************************************/
|
||||
|
||||
var userAgent = window.navigator.userAgent;
|
||||
var isEdge = /Edge/.test(userAgent); // thank you MS
|
||||
var isChrome = /chrome/i.test(userAgent) && !isEdge;
|
||||
var isSafari = /safari/i.test(userAgent) && !isEdge;
|
||||
var isMobile = /mobile/i.test(userAgent);
|
||||
var isIEWin7 = /Windows NT 6.1/i.test(userAgent) && /rv:11/i.test(userAgent);
|
||||
var isOldSafari = isSafari && (/Version\/8/i.test(userAgent) || /Version\/9/i.test(userAgent));
|
||||
var isEnabledForBrowser = (isChrome || isSafari || isIEWin7) && !isMobile;
|
||||
|
||||
var supportsPassive = false;
|
||||
try {
|
||||
window.addEventListener("test", null, Object.defineProperty({}, 'passive', {
|
||||
get: function () {
|
||||
supportsPassive = true;
|
||||
}
|
||||
}));
|
||||
} catch(e) {}
|
||||
|
||||
var wheelOpt = supportsPassive ? { passive: false } : false;
|
||||
var wheelEvent = 'onwheel' in document.createElement('div') ? 'wheel' : 'mousewheel';
|
||||
|
||||
if (wheelEvent && isEnabledForBrowser) {
|
||||
addEvent(wheelEvent, wheel, wheelOpt);
|
||||
addEvent('mousedown', mousedown);
|
||||
addEvent('load', init);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************
|
||||
* PUBLIC INTERFACE
|
||||
***********************************************/
|
||||
|
||||
function SmoothScroll(optionsToSet) {
|
||||
for (var key in optionsToSet)
|
||||
if (defaultOptions.hasOwnProperty(key))
|
||||
options[key] = optionsToSet[key];
|
||||
}
|
||||
SmoothScroll.destroy = cleanup;
|
||||
|
||||
if (window.SmoothScrollOptions) // async API
|
||||
SmoothScroll(window.SmoothScrollOptions);
|
||||
|
||||
if (typeof define === 'function' && define.amd)
|
||||
define(function() {
|
||||
return SmoothScroll;
|
||||
});
|
||||
else if ('object' == typeof exports)
|
||||
module.exports = SmoothScroll;
|
||||
else
|
||||
window.SmoothScroll = SmoothScroll;
|
||||
|
||||
})();
|
||||
9
wp-content/themes/ekko/core/assets/js/admin-scripts.js
Normal file
@@ -0,0 +1,9 @@
|
||||
jQuery(document).ready(function($) {
|
||||
"use strict";
|
||||
$( "a:contains('import-demo-full-custom')" ).parent().remove();
|
||||
$("#import-content").change(function() {
|
||||
var id = $(this).children(":selected").attr("id");
|
||||
$('#import-link-value').val(id);
|
||||
});
|
||||
$("#vc_settings-templatera #submit_btn").attr('value', 'Import ekko Templates');
|
||||
});
|
||||
7
wp-content/themes/ekko/core/assets/js/bootstrap.min.js
vendored
Normal file
4
wp-content/themes/ekko/core/assets/js/photoswipe-ui-default.min.js
vendored
Normal file
4
wp-content/themes/ekko/core/assets/js/photoswipe.min.js
vendored
Normal file
645
wp-content/themes/ekko/core/assets/js/scripts.js
Normal file
@@ -0,0 +1,645 @@
|
||||
// ------------------------------------------------------------------------
|
||||
// Check if element is in ViewPort
|
||||
// ------------------------------------------------------------------------
|
||||
(function($) {
|
||||
"use strict";
|
||||
$.belowthefold = function(element, settings) {
|
||||
var fold = $(window).height() + $(window).scrollTop();
|
||||
return fold <= $(element).offset().top - settings.threshold;
|
||||
};
|
||||
$.abovethetop = function(element, settings) {
|
||||
var top = $(window).scrollTop();
|
||||
return top >= $(element).offset().top + $(element).height() - settings.threshold;
|
||||
};
|
||||
$.rightofscreen = function(element, settings) {
|
||||
var fold = $(window).width() + $(window).scrollLeft();
|
||||
return fold <= $(element).offset().left - settings.threshold;
|
||||
};
|
||||
$.leftofscreen = function(element, settings) {
|
||||
var left = $(window).scrollLeft();
|
||||
return left >= $(element).offset().left + $(element).width() - settings.threshold;
|
||||
};
|
||||
$.inviewport = function(element, settings) {
|
||||
return !$.rightofscreen(element, settings) && !$.leftofscreen(element, settings) && !$.belowthefold(element, settings) && !$.abovethetop(element, settings);
|
||||
};
|
||||
$.extend($.expr[':'], {
|
||||
"below-the-fold": function(a, i, m) {
|
||||
return $.belowthefold(a, {
|
||||
threshold: 0
|
||||
});
|
||||
},
|
||||
"above-the-top": function(a, i, m) {
|
||||
return $.abovethetop(a, {
|
||||
threshold: 0
|
||||
});
|
||||
},
|
||||
"left-of-screen": function(a, i, m) {
|
||||
return $.leftofscreen(a, {
|
||||
threshold: 0
|
||||
});
|
||||
},
|
||||
"right-of-screen": function(a, i, m) {
|
||||
return $.rightofscreen(a, {
|
||||
threshold: 0
|
||||
});
|
||||
},
|
||||
"in-viewport": function(a, i, m) {
|
||||
return $.inviewport(a, {
|
||||
threshold: 0
|
||||
});
|
||||
}
|
||||
});
|
||||
// ------------------------------------------------------------------------
|
||||
// Preload Effect
|
||||
// ------------------------------------------------------------------------
|
||||
$(window).load(function() {
|
||||
"use strict";
|
||||
$('body').removeClass('fade-in');
|
||||
});
|
||||
window.addEventListener("beforeunload", function () {
|
||||
$("body a[href]").click(function(){
|
||||
var $anchor = $(this);
|
||||
|
||||
// Don't fade for links that open in new window
|
||||
if ( $anchor.attr('target') && $anchor.attr('target').indexOf('_blank') >=0 ) {
|
||||
return;
|
||||
}
|
||||
// Don't fade for email
|
||||
if ( $anchor.attr('href').indexOf('mailto:') >=0 ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Don't fade for telephone links
|
||||
if ( $anchor.attr('href').indexOf('tel:') >=0 ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Don't fade for links to anchor tags
|
||||
if ( $anchor.attr('href').indexOf('#') >=0 ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Fade out
|
||||
document.body.classList.add("fade-out");
|
||||
});
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
"use strict";
|
||||
$(".wpb_wrapper:empty").parent().addClass('hide-on-mobile');
|
||||
|
||||
$('.parallax-overlay').each(function() {
|
||||
var size = $(this).attr('data-vc-kd-parallax');
|
||||
var height = $(this).closest('.kd_vc_parallax').innerHeight();
|
||||
$(this).css('height', size * height + 'px');
|
||||
});
|
||||
|
||||
if ($('.entry-header .breadcrumbs').length > 0) {
|
||||
var str = $(".entry-header .breadcrumbs").html();
|
||||
$(".entry-header .breadcrumbs").html(str.replace(/>/g, '<span class="fa fa-angle-right"></span>'));
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// 3rd level menu off screen
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
$(".navbar-nav .dropdown").on("mouseover", function () {
|
||||
var dropdown = $(this).find('.dropdown-menu');
|
||||
var off = dropdown.offset();
|
||||
var l = off.left;
|
||||
var w = dropdown.width();
|
||||
var docW = $(window).width();
|
||||
var isEntirelyVisible = (l + w < docW);
|
||||
if (!isEntirelyVisible) {
|
||||
console.log(l + w - docW);
|
||||
dropdown.addClass('align-menu-right');
|
||||
}
|
||||
});
|
||||
$(window).on('resize', function(){
|
||||
$(".dropdown-menu").removeClass('align-menu-right');
|
||||
});
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Mega menu effects
|
||||
// ------------------------------------------------------------------------
|
||||
if ($('.transparent-navigation').length > 0) {
|
||||
$( ".navbar-nav .mega-menu" ).hover(
|
||||
function () {
|
||||
$('body').removeClass( "transparent-navigation" );
|
||||
},
|
||||
function () {
|
||||
$('body').addClass( "transparent-navigation" );
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
$( ".navbar-nav .mega-menu" ).hover(
|
||||
function () {
|
||||
$('.navbar-nav').addClass( "no-transition" );
|
||||
},
|
||||
function () {
|
||||
$('.navbar-nav').removeClass( "no-transition" );
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
if ($('#single-page').length > 0) {
|
||||
$('body').addClass('single-post');
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Side panel
|
||||
// ------------------------------------------------------------------------
|
||||
var $html_wrapper = $('html'),
|
||||
scrollDisabled = false,
|
||||
scrollTop;
|
||||
|
||||
function scrollDisable() {
|
||||
if (scrollDisabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
scrollTop = $(window).scrollTop();
|
||||
|
||||
$html_wrapper.addClass('scrollLock')
|
||||
.css({
|
||||
top: -1 * scrollTop
|
||||
});
|
||||
|
||||
scrollDisabled = true;
|
||||
}
|
||||
|
||||
function scrollEnable() {
|
||||
if (!scrollDisabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
$html_wrapper.removeClass('scrollLock');
|
||||
$(window).scrollTop(scrollTop);
|
||||
|
||||
scrollDisabled = false;
|
||||
}
|
||||
|
||||
if ($(".panel-trigger-btn").length) {
|
||||
$(".panel-trigger-btn").click(function() {
|
||||
scrollDisable();
|
||||
$(".kd-side-panel, .panel-screen-overlay").addClass("active");
|
||||
$(".navbar.navbar-default.fixed-menu").addClass("panel-enabled");
|
||||
});
|
||||
$(".kd-side-panel .panel-close").click(function() {
|
||||
scrollEnable();
|
||||
$(".kd-side-panel, .panel-screen-overlay").removeClass("active");
|
||||
$(".navbar.navbar-default.fixed-menu").removeClass("panel-enabled");
|
||||
});
|
||||
|
||||
$('.panel-screen-overlay').on("click", function(){
|
||||
$(".kd-side-panel .panel-close").trigger("click");
|
||||
});
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Live Preview Customizer
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
$("#customizer .switcher, .demo-switcher ").click(function() {
|
||||
$("#customizer").toggleClass('active');
|
||||
});
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Topbar search
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
$(".topbar-search .toggle-search").click(function() {
|
||||
$(".topbar-search .topbar-search-container").toggleClass('active');
|
||||
$(this).toggleClass('fa-times');
|
||||
});
|
||||
|
||||
function draw() {
|
||||
requestAnimationFrame(draw);
|
||||
scrollEvent();
|
||||
}
|
||||
draw();
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Fixed Footer
|
||||
// ------------------------------------------------------------------------
|
||||
if ($("#footer.fixed").length) {
|
||||
var footerHeight = $("#footer.fixed").height();
|
||||
$("#wrapper").css("margin-bottom", footerHeight);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Custom Search Field
|
||||
// ------------------------------------------------------------------------
|
||||
$("#s").each(function(index, elem) {
|
||||
var eId = $(elem).attr("id");
|
||||
var label = null;
|
||||
if (eId && (label = $(elem).parents("form").find("label[for=" + eId + "]")).length == 1) {
|
||||
$(elem).attr("placeholder", 'Search');
|
||||
$(label).remove();
|
||||
}
|
||||
});
|
||||
$(".search-submit, .blog_widget #bbp_search_submit").val('');
|
||||
$(".woocommerce-product-search input[type='submit']").val('');
|
||||
// ------------------------------------------------------------------------
|
||||
// Contact Form Buttons
|
||||
// ------------------------------------------------------------------------
|
||||
$(document).on("click", ".section .wpcf7-not-valid-tip,.section .wpcf7-mail-sent-ok, .blog-header-form .wpcf7-not-valid-tip, .blog-header-form .wpcf7-mail-sent-ok, .subscribe-form header .wpcf7-response-output, .modal-content-inner .wpcf7-not-valid-tip, .kd-side-panel .wpcf7-not-valid-tip", function() {
|
||||
$(this).fadeOut();
|
||||
});
|
||||
// ------------------------------------------------------------------------
|
||||
// Reset reCaptcha for modal window
|
||||
// ------------------------------------------------------------------------
|
||||
if ($('.wpcf7-recaptcha').length > 0) {
|
||||
$(document).on("click", ".modal-menu-item", function() {
|
||||
grecaptcha.reset();
|
||||
});
|
||||
}
|
||||
// ------------------------------------------------------------------------
|
||||
// Blog video cover
|
||||
// ------------------------------------------------------------------------
|
||||
$('.background-video-image').each(function() {
|
||||
var imgSrc = $(this).children('img').attr('src');
|
||||
$(this).css('background', 'url("' + imgSrc + '")').css('background-position', 'initial');
|
||||
});
|
||||
|
||||
|
||||
$('.video-cover').each(function(){
|
||||
var videoCover = $(this);
|
||||
if(videoCover.find('iframe').length){
|
||||
videoCover.find('iframe').attr('data-src', videoCover.find('iframe').attr('src'));
|
||||
videoCover.find('iframe').attr('src','');
|
||||
}
|
||||
});
|
||||
|
||||
$('.video-cover .play-video').on("click", function(){
|
||||
var playIcon = $(this);
|
||||
var videoCover = playIcon.closest('.video-cover');
|
||||
if(videoCover.find('video').length){
|
||||
var video = videoCover.find('video').get(0);
|
||||
videoCover.addClass('show-video');
|
||||
video.play();
|
||||
return false;
|
||||
} else if(videoCover.find('iframe').length){
|
||||
var iframe = videoCover.find('iframe');
|
||||
var videoSrc = iframe.attr('data-src');
|
||||
var videoSrcAuto = videoSrc.replace('?feature=oembed', '?autoplay=1');
|
||||
iframe.attr('src', videoSrcAuto);
|
||||
videoCover.addClass('show-video');
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Main Menu One Page Links
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
$( "<span class='mobile-dropdown'></span>" ).appendTo( $( ".navbar-nav .menu-item-has-children" ) );
|
||||
|
||||
$(".navbar-nav .menu-item-has-children .mobile-dropdown").click(function() {
|
||||
$(this).closest(".menu-item-has-children").toggleClass('mobile-visible');
|
||||
});
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Bbpress Breadcrumbs
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
if ($('.bbp-breadcrumb').length > 0) {
|
||||
$( '.bbp-breadcrumb' ).appendTo( $(".bbpress-breadcrumbs"));
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Main Smooth Scroll and Scroll Spy
|
||||
// ------------------------------------------------------------------------
|
||||
$('.navbar-collapse ul li a, .navbar-collapse .modal-menu-item.scroll-section').click(function() {
|
||||
$('.navbar-toggle:visible').click();
|
||||
});
|
||||
$(function() {
|
||||
$('.navbar-nav .one-page-link a, .footer_widget .menu li a, .scroll-section a, .btn-smooth-scroll, .modal-menu-item.scroll-section, .demo-button').bind('click', function(event) {
|
||||
if ($("body").hasClass("home")) {
|
||||
var $anchor = $(this);
|
||||
$('html, body').stop().animate({
|
||||
scrollTop: $($anchor.attr('href')).offset().top - 90
|
||||
}, 1500, 'easeInOutExpo');
|
||||
event.preventDefault();
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$('.portfolio-demo-button').bind('click', function(event) {
|
||||
var $anchor = $(this);
|
||||
$('html, body').stop().animate({
|
||||
scrollTop: $($anchor.attr('href')).offset().top - 250
|
||||
}, 1500, 'easeInOutExpo');
|
||||
event.preventDefault();
|
||||
});
|
||||
});
|
||||
$('body').scrollspy({
|
||||
offset: 100,
|
||||
target: '.navbar-fixed-top'
|
||||
});
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// WPGlobus compatibility - NavWalker conflict
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
if ($('.wpglobus-selector-link').length > 0) {
|
||||
$('.wpglobus-selector-link .dropdown-menu').addClass('sub-menu');
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Back to top button
|
||||
// ------------------------------------------------------------------------
|
||||
$(window).bind("scroll", function() {
|
||||
if ($(window).scrollTop() > $(window).height()) {
|
||||
$('.back-to-top').addClass('active');
|
||||
}
|
||||
if ($(window).scrollTop() < $(window).height()) {
|
||||
$('.back-to-top').removeClass('active');
|
||||
}
|
||||
});
|
||||
$('.back-to-top').click(function(event) {
|
||||
event.preventDefault();
|
||||
$('html, body').animate({
|
||||
scrollTop: 0
|
||||
}, 500);
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Blog image carousel
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
if (jQuery().owlCarousel) {
|
||||
jQuery('.post .entry-gallery .gallery').addClass('post-gallery-carousel');
|
||||
jQuery('.single-post .gallery').addClass('post-gallery-carousel');
|
||||
}
|
||||
|
||||
if ($(".post .entry-gallery .post-gallery-carousel").length || $(".single-post .post-gallery-carousel").length) {
|
||||
$(".post .entry-gallery .post-gallery-carousel, .single-post .post-gallery-carousel").owlCarousel({
|
||||
stageClass: "owl-wrapper",
|
||||
stageOuterClass: "owl-wrapper-outer",
|
||||
loadedClass: "owl-carousel",
|
||||
items: 1,
|
||||
dots: true,
|
||||
dotsSpeed: 500,
|
||||
dotsEach: true,
|
||||
});
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Portfolio & Blog related posts slider
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
if ($(".related-content.owlslider-related-posts").length) {
|
||||
$(".related-content.owlslider-related-posts").owlCarousel({
|
||||
stageClass: "owl-wrapper",
|
||||
stageOuterClass: "owl-wrapper-outer",
|
||||
loadedClass: "owl-carousel",
|
||||
responsive:{
|
||||
0:{
|
||||
items: 1,
|
||||
nav: false,
|
||||
dots: true,
|
||||
},
|
||||
767:{
|
||||
items: 3,
|
||||
nav: false,
|
||||
dots: true,
|
||||
},
|
||||
960:{
|
||||
nav: true,
|
||||
navSpeed: 500,
|
||||
dots: false,
|
||||
}
|
||||
},
|
||||
nav: true,
|
||||
navSpeed: 500,
|
||||
dots: false,
|
||||
rewind: true,
|
||||
loop: true,
|
||||
});
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Portfolio photoSwipe init
|
||||
// ------------------------------------------------------------------------
|
||||
var PhotoSwipe = window.PhotoSwipe,
|
||||
PhotoSwipeUI_Default = window.PhotoSwipeUI_Default;
|
||||
|
||||
$('body').on('click', 'a[data-size]', function(e) {
|
||||
if (!PhotoSwipe || !PhotoSwipeUI_Default) {
|
||||
return;
|
||||
}
|
||||
|
||||
e.preventDefault();
|
||||
openPhotoSwipe(this);
|
||||
});
|
||||
|
||||
var parseThumbnailElements = function(gallery, el) {
|
||||
var elements = $(gallery).find('a[data-size]').has('img'),
|
||||
galleryItems = [],
|
||||
index;
|
||||
|
||||
elements.each(function(i) {
|
||||
var $el = $(this),
|
||||
size = $el.data('size').split('x'),
|
||||
caption;
|
||||
|
||||
if ($el.next().is('.wp-caption-text')) {
|
||||
// image with caption
|
||||
caption = $el.next().text();
|
||||
} else if ($el.parent().next().is('.wp-caption-text')) {
|
||||
// gallery icon with caption
|
||||
caption = $el.parent().next().text();
|
||||
} else {
|
||||
caption = $el.attr('title');
|
||||
}
|
||||
|
||||
galleryItems.push({
|
||||
src: $el.attr('href'),
|
||||
w: parseInt(size[0], 10),
|
||||
h: parseInt(size[1], 10),
|
||||
title: caption,
|
||||
msrc: $el.find('img').attr('src'),
|
||||
el: $el
|
||||
});
|
||||
if (el === $el.get(0)) {
|
||||
index = i;
|
||||
}
|
||||
});
|
||||
|
||||
return [galleryItems, parseInt(index, 10)];
|
||||
};
|
||||
|
||||
var openPhotoSwipe = function(element, disableAnimation) {
|
||||
var pswpElement = $('.pswp').get(0),
|
||||
galleryElement = $(element).parents('.gallery, .hentry, .main, body').first(),
|
||||
gallery,
|
||||
options,
|
||||
items, index;
|
||||
|
||||
items = parseThumbnailElements(galleryElement, element);
|
||||
index = items[1];
|
||||
items = items[0];
|
||||
|
||||
options = {
|
||||
index: index,
|
||||
getThumbBoundsFn: function(index) {
|
||||
var image = items[index].el.find('img'),
|
||||
offset = image.offset();
|
||||
|
||||
return {
|
||||
x: offset.left,
|
||||
y: offset.top,
|
||||
w: image.width()
|
||||
};
|
||||
},
|
||||
showHideOpacity: true,
|
||||
history: false
|
||||
};
|
||||
|
||||
if (disableAnimation) {
|
||||
options.showAnimationDuration = 0;
|
||||
}
|
||||
|
||||
// Pass data to PhotoSwipe and initialize it
|
||||
gallery = new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, items, options);
|
||||
gallery.init();
|
||||
};
|
||||
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Classie Script
|
||||
// ------------------------------------------------------------------------
|
||||
(function(window) {
|
||||
|
||||
function classReg(className) {
|
||||
return new RegExp("(^|\\s+)" + className + "(\\s+|$)");
|
||||
}
|
||||
var hasClass, addClass, removeClass;
|
||||
if ('classList' in document.documentElement) {
|
||||
hasClass = function(elem, c) {
|
||||
return elem.classList.contains(c);
|
||||
};
|
||||
addClass = function(elem, c) {
|
||||
elem.classList.add(c);
|
||||
};
|
||||
removeClass = function(elem, c) {
|
||||
elem.classList.remove(c);
|
||||
};
|
||||
} else {
|
||||
hasClass = function(elem, c) {
|
||||
return classReg(c).test(elem.className);
|
||||
};
|
||||
addClass = function(elem, c) {
|
||||
if (!hasClass(elem, c)) {
|
||||
elem.className = elem.className + ' ' + c;
|
||||
}
|
||||
};
|
||||
removeClass = function(elem, c) {
|
||||
elem.className = elem.className.replace(classReg(c), ' ');
|
||||
};
|
||||
}
|
||||
|
||||
function toggleClass(elem, c) {
|
||||
var fn = hasClass(elem, c) ? removeClass : addClass;
|
||||
fn(elem, c);
|
||||
}
|
||||
var classie = {
|
||||
hasClass: hasClass,
|
||||
addClass: addClass,
|
||||
removeClass: removeClass,
|
||||
toggleClass: toggleClass,
|
||||
has: hasClass,
|
||||
add: addClass,
|
||||
remove: removeClass,
|
||||
toggle: toggleClass
|
||||
};
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
define(classie);
|
||||
} else {
|
||||
window.classie = classie;
|
||||
}
|
||||
|
||||
})(window);
|
||||
// ------------------------------------------------------------------------
|
||||
// Animated Header
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
var cbpAnimatedHeader = (function() {
|
||||
var docElem = document.documentElement,
|
||||
header = document.querySelector('.navbar-default'),
|
||||
didScroll = false,
|
||||
changeHeaderOn = 50;
|
||||
|
||||
function init() {
|
||||
window.addEventListener('scroll', function(event) {
|
||||
if (!didScroll) {
|
||||
didScroll = true;
|
||||
setTimeout(scrollPage, 100);
|
||||
}
|
||||
}, false);
|
||||
window.addEventListener('load', function(event) {
|
||||
if (!didScroll) {
|
||||
didScroll = true;
|
||||
setTimeout(scrollPage, 100);
|
||||
}
|
||||
}, false);
|
||||
}
|
||||
|
||||
function scrollPage() {
|
||||
var sy = scrollY();
|
||||
if (sy >= changeHeaderOn) {
|
||||
classie.add(header, 'navbar-shrink');
|
||||
$(".topbar-search-container").removeClass('active');
|
||||
$(".topbar-search .toggle-search").removeClass('fa-times');
|
||||
} else {
|
||||
if (!$(".panel-screen-overlay.active").length) {
|
||||
classie.remove(header, 'navbar-shrink');
|
||||
}
|
||||
}
|
||||
didScroll = false;
|
||||
}
|
||||
|
||||
function scrollY() {
|
||||
return window.pageYOffset || docElem.scrollTop;
|
||||
}
|
||||
if (!$(header).hasClass("fixed-menu")) {
|
||||
init();
|
||||
}
|
||||
})();
|
||||
|
||||
|
||||
})(jQuery);
|
||||
|
||||
|
||||
|
||||
function scrollEvent() {
|
||||
|
||||
if (!is_touch_device()) {
|
||||
viewportTop = jQuery(window).scrollTop();
|
||||
|
||||
if (jQuery(window).width())
|
||||
|
||||
jQuery('.parallax-overlay').each(function() {
|
||||
elementOffset = jQuery(this).offset().top;
|
||||
var size = jQuery(this).attr('data-vc-kd-parallax');
|
||||
distance = (elementOffset - viewportTop) * ( 1 - size );
|
||||
jQuery(this).css('transform', 'translate3d(0, ' + distance + 'px,0)');
|
||||
});
|
||||
|
||||
jQuery('.kd-parallax-image .vc_figure img').each(function() {
|
||||
elementOffset = jQuery(this).offset().top;
|
||||
distance = (elementOffset - viewportTop) * -0.5;
|
||||
jQuery(this).css('transform', 'translateY(' + distance + 'px)');
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function is_touch_device() {
|
||||
return 'ontouchstart' in window || 'onmsgesturechange' in window;
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
(function($){
|
||||
"use strict";
|
||||
|
||||
function get_cart(){
|
||||
if(window.wc_add_to_cart_params!=undefined){
|
||||
$.post({
|
||||
url: wc_add_to_cart_params.ajax_url,
|
||||
dataType: 'JSON',
|
||||
data: {action: 'woomenucart_ajax', nonce: keydesign_menucart_ajax.nonce},
|
||||
success: function(data, textStatus, XMLHttpRequest){
|
||||
$('.keydesign-cart-dropdown').html(data.cart);
|
||||
if(data.articles < 1) { $('.keydesign-cart-dropdown').html('<li><span class="empty-cart">Your cart is currently empty</span></li>'); }
|
||||
if(data!='') {
|
||||
if($('.keydesign-cart .badge, .mobile-shopping-cart .badge').length){
|
||||
if(data.articles>0){
|
||||
$('.keydesign-cart .badge, .mobile-shopping-cart .badge').html(data.articles);
|
||||
$('.keydesign-cart .badge, .mobile-shopping-cart .badge').show();
|
||||
} else {
|
||||
$('.keydesign-cart .badge, .mobile-shopping-cart .badge').hide();
|
||||
}
|
||||
} else $('.keydesign-cart .cart-icon-container').append('<span class="badge">'+data.articles+'</span>');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
$('body').bind("added_to_cart",get_cart);
|
||||
$('body').bind("wc_fragments_refreshed",get_cart);
|
||||
});
|
||||
|
||||
})(jQuery);
|
||||