ajout admin panel
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3899
File diff suppressed because it is too large
Load Diff
+1
File diff suppressed because one or more lines are too long
+7
File diff suppressed because one or more lines are too long
+1
File diff suppressed because one or more lines are too long
+327
@@ -0,0 +1,327 @@
|
||||
/*!
|
||||
* Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2019 The Bootstrap Authors
|
||||
* Copyright 2011-2019 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||
*/
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
html {
|
||||
font-family: sans-serif;
|
||||
line-height: 1.15;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
|
||||
display: block;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
font-size: 1rem;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: #212529;
|
||||
text-align: left;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
[tabindex="-1"]:focus:not(:focus-visible) {
|
||||
outline: 0 !important;
|
||||
}
|
||||
|
||||
hr {
|
||||
box-sizing: content-box;
|
||||
height: 0;
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
abbr[title],
|
||||
abbr[data-original-title] {
|
||||
text-decoration: underline;
|
||||
-webkit-text-decoration: underline dotted;
|
||||
text-decoration: underline dotted;
|
||||
cursor: help;
|
||||
border-bottom: 0;
|
||||
-webkit-text-decoration-skip-ink: none;
|
||||
text-decoration-skip-ink: none;
|
||||
}
|
||||
|
||||
address {
|
||||
margin-bottom: 1rem;
|
||||
font-style: normal;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
ol,
|
||||
ul,
|
||||
dl {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
ol ol,
|
||||
ul ul,
|
||||
ol ul,
|
||||
ul ol {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-bottom: .5rem;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 0 0 1rem;
|
||||
}
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
sub,
|
||||
sup {
|
||||
position: relative;
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -.25em;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -.5em;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #007bff;
|
||||
text-decoration: none;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #0056b3;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:not([href]) {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:not([href]):hover {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
pre,
|
||||
code,
|
||||
kbd,
|
||||
samp {
|
||||
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
pre {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
figure {
|
||||
margin: 0 0 1rem;
|
||||
}
|
||||
|
||||
img {
|
||||
vertical-align: middle;
|
||||
border-style: none;
|
||||
}
|
||||
|
||||
svg {
|
||||
overflow: hidden;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
caption {
|
||||
padding-top: 0.75rem;
|
||||
padding-bottom: 0.75rem;
|
||||
color: #6c757d;
|
||||
text-align: left;
|
||||
caption-side: bottom;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: inherit;
|
||||
}
|
||||
|
||||
label {
|
||||
display: inline-block;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
button {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
button:focus {
|
||||
outline: 1px dotted;
|
||||
outline: 5px auto -webkit-focus-ring-color;
|
||||
}
|
||||
|
||||
input,
|
||||
button,
|
||||
select,
|
||||
optgroup,
|
||||
textarea {
|
||||
margin: 0;
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
button,
|
||||
input {
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
button,
|
||||
select {
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
select {
|
||||
word-wrap: normal;
|
||||
}
|
||||
|
||||
button,
|
||||
[type="button"],
|
||||
[type="reset"],
|
||||
[type="submit"] {
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
|
||||
button:not(:disabled),
|
||||
[type="button"]:not(:disabled),
|
||||
[type="reset"]:not(:disabled),
|
||||
[type="submit"]:not(:disabled) {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
button::-moz-focus-inner,
|
||||
[type="button"]::-moz-focus-inner,
|
||||
[type="reset"]::-moz-focus-inner,
|
||||
[type="submit"]::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border-style: none;
|
||||
}
|
||||
|
||||
input[type="radio"],
|
||||
input[type="checkbox"] {
|
||||
box-sizing: border-box;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
input[type="date"],
|
||||
input[type="time"],
|
||||
input[type="datetime-local"],
|
||||
input[type="month"] {
|
||||
-webkit-appearance: listbox;
|
||||
}
|
||||
|
||||
textarea {
|
||||
overflow: auto;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
min-width: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
legend {
|
||||
display: block;
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
padding: 0;
|
||||
margin-bottom: .5rem;
|
||||
font-size: 1.5rem;
|
||||
line-height: inherit;
|
||||
color: inherit;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
progress {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
[type="number"]::-webkit-inner-spin-button,
|
||||
[type="number"]::-webkit-outer-spin-button {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
[type="search"] {
|
||||
outline-offset: -2px;
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
[type="search"]::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
::-webkit-file-upload-button {
|
||||
font: inherit;
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
|
||||
output {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
summary {
|
||||
display: list-item;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
template {
|
||||
display: none;
|
||||
}
|
||||
|
||||
[hidden] {
|
||||
display: none !important;
|
||||
}
|
||||
/*# sourceMappingURL=bootstrap-reboot.css.map */
|
||||
+1
File diff suppressed because one or more lines are too long
+8
@@ -0,0 +1,8 @@
|
||||
/*!
|
||||
* Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2019 The Bootstrap Authors
|
||||
* Copyright 2011-2019 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]){color:inherit;text-decoration:none}a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
|
||||
/*# sourceMappingURL=bootstrap-reboot.min.css.map */
|
||||
+1
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
File diff suppressed because one or more lines are too long
+7134
File diff suppressed because it is too large
Load Diff
+1
File diff suppressed because one or more lines are too long
+7
File diff suppressed because one or more lines are too long
+1
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,386 @@
|
||||
@-webkit-keyframes spin
|
||||
{
|
||||
0%
|
||||
{
|
||||
-webkit-transform: rotate(0);
|
||||
transform: rotate(0);
|
||||
}
|
||||
100%
|
||||
{
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
@keyframes spin
|
||||
{
|
||||
0%
|
||||
{
|
||||
-webkit-transform: rotate(0);
|
||||
transform: rotate(0);
|
||||
}
|
||||
100%
|
||||
{
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes burst
|
||||
{
|
||||
0%
|
||||
{
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1);
|
||||
|
||||
opacity: 1;
|
||||
}
|
||||
90%
|
||||
{
|
||||
-webkit-transform: scale(1.5);
|
||||
transform: scale(1.5);
|
||||
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@keyframes burst
|
||||
{
|
||||
0%
|
||||
{
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1);
|
||||
|
||||
opacity: 1;
|
||||
}
|
||||
90%
|
||||
{
|
||||
-webkit-transform: scale(1.5);
|
||||
transform: scale(1.5);
|
||||
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes flashing
|
||||
{
|
||||
0%
|
||||
{
|
||||
opacity: 1;
|
||||
}
|
||||
45%
|
||||
{
|
||||
opacity: 0;
|
||||
}
|
||||
90%
|
||||
{
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
@keyframes flashing
|
||||
{
|
||||
0%
|
||||
{
|
||||
opacity: 1;
|
||||
}
|
||||
45%
|
||||
{
|
||||
opacity: 0;
|
||||
}
|
||||
90%
|
||||
{
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes fade-left
|
||||
{
|
||||
0%
|
||||
{
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
|
||||
opacity: 1;
|
||||
}
|
||||
75%
|
||||
{
|
||||
-webkit-transform: translateX(-20px);
|
||||
transform: translateX(-20px);
|
||||
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@keyframes fade-left
|
||||
{
|
||||
0%
|
||||
{
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
|
||||
opacity: 1;
|
||||
}
|
||||
75%
|
||||
{
|
||||
-webkit-transform: translateX(-20px);
|
||||
transform: translateX(-20px);
|
||||
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes fade-right
|
||||
{
|
||||
0%
|
||||
{
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
|
||||
opacity: 1;
|
||||
}
|
||||
75%
|
||||
{
|
||||
-webkit-transform: translateX(20px);
|
||||
transform: translateX(20px);
|
||||
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@keyframes fade-right
|
||||
{
|
||||
0%
|
||||
{
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
|
||||
opacity: 1;
|
||||
}
|
||||
75%
|
||||
{
|
||||
-webkit-transform: translateX(20px);
|
||||
transform: translateX(20px);
|
||||
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes fade-up
|
||||
{
|
||||
0%
|
||||
{
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
|
||||
opacity: 1;
|
||||
}
|
||||
75%
|
||||
{
|
||||
-webkit-transform: translateY(-20px);
|
||||
transform: translateY(-20px);
|
||||
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@keyframes fade-up
|
||||
{
|
||||
0%
|
||||
{
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
|
||||
opacity: 1;
|
||||
}
|
||||
75%
|
||||
{
|
||||
-webkit-transform: translateY(-20px);
|
||||
transform: translateY(-20px);
|
||||
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes fade-down
|
||||
{
|
||||
0%
|
||||
{
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
|
||||
opacity: 1;
|
||||
}
|
||||
75%
|
||||
{
|
||||
-webkit-transform: translateY(20px);
|
||||
transform: translateY(20px);
|
||||
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@keyframes fade-down
|
||||
{
|
||||
0%
|
||||
{
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
|
||||
opacity: 1;
|
||||
}
|
||||
75%
|
||||
{
|
||||
-webkit-transform: translateY(20px);
|
||||
transform: translateY(20px);
|
||||
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes tada
|
||||
{
|
||||
from
|
||||
{
|
||||
-webkit-transform: scale3d(1, 1, 1);
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
|
||||
10%,
|
||||
20%
|
||||
{
|
||||
-webkit-transform: scale3d(.95, .95, .95) rotate3d(0, 0, 1, -10deg);
|
||||
transform: scale3d(.95, .95, .95) rotate3d(0, 0, 1, -10deg);
|
||||
}
|
||||
|
||||
30%,
|
||||
50%,
|
||||
70%,
|
||||
90%
|
||||
{
|
||||
-webkit-transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, 10deg);
|
||||
transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, 10deg);
|
||||
}
|
||||
|
||||
40%,
|
||||
60%,
|
||||
80%
|
||||
{
|
||||
-webkit-transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, -10deg);
|
||||
transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, -10deg);
|
||||
}
|
||||
|
||||
to
|
||||
{
|
||||
-webkit-transform: scale3d(1, 1, 1);
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes tada
|
||||
{
|
||||
from
|
||||
{
|
||||
-webkit-transform: scale3d(1, 1, 1);
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
|
||||
10%,
|
||||
20%
|
||||
{
|
||||
-webkit-transform: scale3d(.95, .95, .95) rotate3d(0, 0, 1, -10deg);
|
||||
transform: scale3d(.95, .95, .95) rotate3d(0, 0, 1, -10deg);
|
||||
}
|
||||
|
||||
30%,
|
||||
50%,
|
||||
70%,
|
||||
90%
|
||||
{
|
||||
-webkit-transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, 10deg);
|
||||
transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, 10deg);
|
||||
}
|
||||
|
||||
40%,
|
||||
60%,
|
||||
80%
|
||||
{
|
||||
-webkit-transform: rotate3d(0, 0, 1, -10deg);
|
||||
transform: rotate3d(0, 0, 1, -10deg);
|
||||
}
|
||||
|
||||
to
|
||||
{
|
||||
-webkit-transform: scale3d(1, 1, 1);
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
}
|
||||
.bx-spin
|
||||
{
|
||||
-webkit-animation: spin 2s linear infinite;
|
||||
animation: spin 2s linear infinite;
|
||||
}
|
||||
.bx-spin-hover:hover
|
||||
{
|
||||
-webkit-animation: spin 2s linear infinite;
|
||||
animation: spin 2s linear infinite;
|
||||
}
|
||||
|
||||
.bx-tada
|
||||
{
|
||||
-webkit-animation: tada 1.5s ease infinite;
|
||||
animation: tada 1.5s ease infinite;
|
||||
}
|
||||
.bx-tada-hover:hover
|
||||
{
|
||||
-webkit-animation: tada 1.5s ease infinite;
|
||||
animation: tada 1.5s ease infinite;
|
||||
}
|
||||
|
||||
.bx-flashing
|
||||
{
|
||||
-webkit-animation: flashing 1.5s infinite linear;
|
||||
animation: flashing 1.5s infinite linear;
|
||||
}
|
||||
.bx-flashing-hover:hover
|
||||
{
|
||||
-webkit-animation: flashing 1.5s infinite linear;
|
||||
animation: flashing 1.5s infinite linear;
|
||||
}
|
||||
|
||||
.bx-burst
|
||||
{
|
||||
-webkit-animation: burst 1.5s infinite linear;
|
||||
animation: burst 1.5s infinite linear;
|
||||
}
|
||||
.bx-burst-hover:hover
|
||||
{
|
||||
-webkit-animation: burst 1.5s infinite linear;
|
||||
animation: burst 1.5s infinite linear;
|
||||
}
|
||||
.bx-fade-up
|
||||
{
|
||||
-webkit-animation: fade-up 1.5s infinite linear;
|
||||
animation: fade-up 1.5s infinite linear;
|
||||
}
|
||||
.bx-fade-up-hover:hover
|
||||
{
|
||||
-webkit-animation: fade-up 1.5s infinite linear;
|
||||
animation: fade-up 1.5s infinite linear;
|
||||
}
|
||||
.bx-fade-down
|
||||
{
|
||||
-webkit-animation: fade-down 1.5s infinite linear;
|
||||
animation: fade-down 1.5s infinite linear;
|
||||
}
|
||||
.bx-fade-down-hover:hover
|
||||
{
|
||||
-webkit-animation: fade-down 1.5s infinite linear;
|
||||
animation: fade-down 1.5s infinite linear;
|
||||
}
|
||||
.bx-fade-left
|
||||
{
|
||||
-webkit-animation: fade-left 1.5s infinite linear;
|
||||
animation: fade-left 1.5s infinite linear;
|
||||
}
|
||||
.bx-fade-left-hover:hover
|
||||
{
|
||||
-webkit-animation: fade-left 1.5s infinite linear;
|
||||
animation: fade-left 1.5s infinite linear;
|
||||
}
|
||||
.bx-fade-right
|
||||
{
|
||||
-webkit-animation: fade-right 1.5s infinite linear;
|
||||
animation: fade-right 1.5s infinite linear;
|
||||
}
|
||||
.bx-fade-right-hover:hover
|
||||
{
|
||||
-webkit-animation: fade-right 1.5s infinite linear;
|
||||
animation: fade-right 1.5s infinite linear;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,30 @@
|
||||
.bx-rotate-90
|
||||
{
|
||||
transform: rotate(90deg);
|
||||
|
||||
-ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=1)';
|
||||
}
|
||||
.bx-rotate-180
|
||||
{
|
||||
transform: rotate(180deg);
|
||||
|
||||
-ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=2)';
|
||||
}
|
||||
.bx-rotate-270
|
||||
{
|
||||
transform: rotate(270deg);
|
||||
|
||||
-ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=3)';
|
||||
}
|
||||
.bx-flip-horizontal
|
||||
{
|
||||
transform: scaleX(-1);
|
||||
|
||||
-ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)';
|
||||
}
|
||||
.bx-flip-vertical
|
||||
{
|
||||
transform: scaleY(-1);
|
||||
|
||||
-ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)';
|
||||
}
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 912 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
+12
File diff suppressed because one or more lines are too long
@@ -0,0 +1,274 @@
|
||||
// Sticky Plugin v1.0.4 for jQuery
|
||||
// =============
|
||||
// Author: Anthony Garand
|
||||
// Improvements by German M. Bravo (Kronuz) and Ruud Kamphuis (ruudk)
|
||||
// Improvements by Leonardo C. Daronco (daronco)
|
||||
// Created: 02/14/2011
|
||||
// Date: 07/20/2015
|
||||
// Website: http://stickyjs.com/
|
||||
// Description: Makes an element on the page stick on the screen as you scroll
|
||||
// It will only set the 'top' and 'position' of your element, you
|
||||
// might need to adjust the width in some cases.
|
||||
|
||||
(function (factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module.
|
||||
define(['jquery'], factory);
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node/CommonJS
|
||||
module.exports = factory(require('jquery'));
|
||||
} else {
|
||||
// Browser globals
|
||||
factory(jQuery);
|
||||
}
|
||||
}(function ($) {
|
||||
var slice = Array.prototype.slice; // save ref to original slice()
|
||||
var splice = Array.prototype.splice; // save ref to original slice()
|
||||
|
||||
var defaults = {
|
||||
topSpacing: 0,
|
||||
bottomSpacing: 0,
|
||||
className: 'is-sticky',
|
||||
wrapperClassName: 'sticky-wrapper',
|
||||
center: false,
|
||||
getWidthFrom: '',
|
||||
widthFromWrapper: true, // works only when .getWidthFrom is empty
|
||||
responsiveWidth: false,
|
||||
zIndex: 'auto'
|
||||
},
|
||||
$window = $(window),
|
||||
$document = $(document),
|
||||
sticked = [],
|
||||
windowHeight = $window.height(),
|
||||
scroller = function() {
|
||||
var scrollTop = $window.scrollTop(),
|
||||
documentHeight = $document.height(),
|
||||
dwh = documentHeight - windowHeight,
|
||||
extra = (scrollTop > dwh) ? dwh - scrollTop : 0;
|
||||
|
||||
for (var i = 0, l = sticked.length; i < l; i++) {
|
||||
var s = sticked[i],
|
||||
elementTop = s.stickyWrapper.offset().top,
|
||||
etse = elementTop - s.topSpacing - extra;
|
||||
|
||||
//update height in case of dynamic content
|
||||
s.stickyWrapper.css('height', s.stickyElement.outerHeight());
|
||||
|
||||
if (scrollTop <= etse) {
|
||||
if (s.currentTop !== null) {
|
||||
s.stickyElement
|
||||
.css({
|
||||
'width': '',
|
||||
'position': '',
|
||||
'top': '',
|
||||
'z-index': ''
|
||||
});
|
||||
s.stickyElement.parent().removeClass(s.className);
|
||||
s.stickyElement.trigger('sticky-end', [s]);
|
||||
s.currentTop = null;
|
||||
}
|
||||
}
|
||||
else {
|
||||
var newTop = documentHeight - s.stickyElement.outerHeight()
|
||||
- s.topSpacing - s.bottomSpacing - scrollTop - extra;
|
||||
if (newTop < 0) {
|
||||
newTop = newTop + s.topSpacing;
|
||||
} else {
|
||||
newTop = s.topSpacing;
|
||||
}
|
||||
if (s.currentTop !== newTop) {
|
||||
var newWidth;
|
||||
if (s.getWidthFrom) {
|
||||
newWidth = $(s.getWidthFrom).width() || null;
|
||||
} else if (s.widthFromWrapper) {
|
||||
newWidth = s.stickyWrapper.width();
|
||||
}
|
||||
if (newWidth == null) {
|
||||
newWidth = s.stickyElement.width();
|
||||
}
|
||||
s.stickyElement
|
||||
.css('width', newWidth)
|
||||
.css('position', 'fixed')
|
||||
.css('top', newTop)
|
||||
.css('z-index', s.zIndex);
|
||||
|
||||
s.stickyElement.parent().addClass(s.className);
|
||||
|
||||
if (s.currentTop === null) {
|
||||
s.stickyElement.trigger('sticky-start', [s]);
|
||||
} else {
|
||||
// sticky is started but it have to be repositioned
|
||||
s.stickyElement.trigger('sticky-update', [s]);
|
||||
}
|
||||
|
||||
if (s.currentTop === s.topSpacing && s.currentTop > newTop || s.currentTop === null && newTop < s.topSpacing) {
|
||||
// just reached bottom || just started to stick but bottom is already reached
|
||||
s.stickyElement.trigger('sticky-bottom-reached', [s]);
|
||||
} else if(s.currentTop !== null && newTop === s.topSpacing && s.currentTop < newTop) {
|
||||
// sticky is started && sticked at topSpacing && overflowing from top just finished
|
||||
s.stickyElement.trigger('sticky-bottom-unreached', [s]);
|
||||
}
|
||||
|
||||
s.currentTop = newTop;
|
||||
}
|
||||
|
||||
// Check if sticky has reached end of container and stop sticking
|
||||
var stickyWrapperContainer = s.stickyWrapper.parent();
|
||||
var unstick = (s.stickyElement.offset().top + s.stickyElement.outerHeight() >= stickyWrapperContainer.offset().top + stickyWrapperContainer.outerHeight()) && (s.stickyElement.offset().top <= s.topSpacing);
|
||||
|
||||
if( unstick ) {
|
||||
s.stickyElement
|
||||
.css('position', 'absolute')
|
||||
.css('top', '')
|
||||
.css('bottom', 0)
|
||||
.css('z-index', '');
|
||||
} else {
|
||||
s.stickyElement
|
||||
.css('position', 'fixed')
|
||||
.css('top', newTop)
|
||||
.css('bottom', '')
|
||||
.css('z-index', s.zIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
resizer = function() {
|
||||
windowHeight = $window.height();
|
||||
|
||||
for (var i = 0, l = sticked.length; i < l; i++) {
|
||||
var s = sticked[i];
|
||||
var newWidth = null;
|
||||
if (s.getWidthFrom) {
|
||||
if (s.responsiveWidth) {
|
||||
newWidth = $(s.getWidthFrom).width();
|
||||
}
|
||||
} else if(s.widthFromWrapper) {
|
||||
newWidth = s.stickyWrapper.width();
|
||||
}
|
||||
if (newWidth != null) {
|
||||
s.stickyElement.css('width', newWidth);
|
||||
}
|
||||
}
|
||||
},
|
||||
methods = {
|
||||
init: function(options) {
|
||||
var o = $.extend({}, defaults, options);
|
||||
return this.each(function() {
|
||||
var stickyElement = $(this);
|
||||
|
||||
var stickyId = stickyElement.attr('id');
|
||||
var wrapperId = stickyId ? stickyId + '-' + defaults.wrapperClassName : defaults.wrapperClassName;
|
||||
var wrapper = $('<div></div>')
|
||||
.attr('id', wrapperId)
|
||||
.addClass(o.wrapperClassName);
|
||||
|
||||
stickyElement.wrapAll(wrapper);
|
||||
|
||||
var stickyWrapper = stickyElement.parent();
|
||||
|
||||
if (o.center) {
|
||||
stickyWrapper.css({width:stickyElement.outerWidth(),marginLeft:"auto",marginRight:"auto"});
|
||||
}
|
||||
|
||||
if (stickyElement.css("float") === "right") {
|
||||
stickyElement.css({"float":"none"}).parent().css({"float":"right"});
|
||||
}
|
||||
|
||||
o.stickyElement = stickyElement;
|
||||
o.stickyWrapper = stickyWrapper;
|
||||
o.currentTop = null;
|
||||
|
||||
sticked.push(o);
|
||||
|
||||
methods.setWrapperHeight(this);
|
||||
methods.setupChangeListeners(this);
|
||||
});
|
||||
},
|
||||
|
||||
setWrapperHeight: function(stickyElement) {
|
||||
var element = $(stickyElement);
|
||||
var stickyWrapper = element.parent();
|
||||
if (stickyWrapper) {
|
||||
stickyWrapper.css('height', element.outerHeight());
|
||||
}
|
||||
},
|
||||
|
||||
setupChangeListeners: function(stickyElement) {
|
||||
if (window.MutationObserver) {
|
||||
var mutationObserver = new window.MutationObserver(function(mutations) {
|
||||
if (mutations[0].addedNodes.length || mutations[0].removedNodes.length) {
|
||||
methods.setWrapperHeight(stickyElement);
|
||||
}
|
||||
});
|
||||
mutationObserver.observe(stickyElement, {subtree: true, childList: true});
|
||||
} else {
|
||||
stickyElement.addEventListener('DOMNodeInserted', function() {
|
||||
methods.setWrapperHeight(stickyElement);
|
||||
}, false);
|
||||
stickyElement.addEventListener('DOMNodeRemoved', function() {
|
||||
methods.setWrapperHeight(stickyElement);
|
||||
}, false);
|
||||
}
|
||||
},
|
||||
update: scroller,
|
||||
unstick: function(options) {
|
||||
return this.each(function() {
|
||||
var that = this;
|
||||
var unstickyElement = $(that);
|
||||
|
||||
var removeIdx = -1;
|
||||
var i = sticked.length;
|
||||
while (i-- > 0) {
|
||||
if (sticked[i].stickyElement.get(0) === that) {
|
||||
splice.call(sticked,i,1);
|
||||
removeIdx = i;
|
||||
}
|
||||
}
|
||||
if(removeIdx !== -1) {
|
||||
unstickyElement.unwrap();
|
||||
unstickyElement
|
||||
.css({
|
||||
'width': '',
|
||||
'position': '',
|
||||
'top': '',
|
||||
'float': '',
|
||||
'z-index': ''
|
||||
})
|
||||
;
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// should be more efficient than using $window.scroll(scroller) and $window.resize(resizer):
|
||||
if (window.addEventListener) {
|
||||
window.addEventListener('scroll', scroller, false);
|
||||
window.addEventListener('resize', resizer, false);
|
||||
} else if (window.attachEvent) {
|
||||
window.attachEvent('onscroll', scroller);
|
||||
window.attachEvent('onresize', resizer);
|
||||
}
|
||||
|
||||
$.fn.sticky = function(method) {
|
||||
if (methods[method]) {
|
||||
return methods[method].apply(this, slice.call(arguments, 1));
|
||||
} else if (typeof method === 'object' || !method ) {
|
||||
return methods.init.apply( this, arguments );
|
||||
} else {
|
||||
$.error('Method ' + method + ' does not exist on jQuery.sticky');
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.unstick = function(method) {
|
||||
if (methods[method]) {
|
||||
return methods[method].apply(this, slice.call(arguments, 1));
|
||||
} else if (typeof method === 'object' || !method ) {
|
||||
return methods.unstick.apply( this, arguments );
|
||||
} else {
|
||||
$.error('Method ' + method + ' does not exist on jQuery.sticky');
|
||||
}
|
||||
};
|
||||
$(function() {
|
||||
setTimeout(scroller, 0);
|
||||
});
|
||||
}));
|
||||
+1
@@ -0,0 +1 @@
|
||||
(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],function($){return factory($)})}else if(typeof module==="object"&&typeof module.exports==="object"){exports=factory(require("jquery"))}else{factory(jQuery)}})(function($){$.easing.jswing=$.easing.swing;var pow=Math.pow,sqrt=Math.sqrt,sin=Math.sin,cos=Math.cos,PI=Math.PI,c1=1.70158,c2=c1*1.525,c3=c1+1,c4=2*PI/3,c5=2*PI/4.5;function bounceOut(x){var n1=7.5625,d1=2.75;if(x<1/d1){return n1*x*x}else if(x<2/d1){return n1*(x-=1.5/d1)*x+.75}else if(x<2.5/d1){return n1*(x-=2.25/d1)*x+.9375}else{return n1*(x-=2.625/d1)*x+.984375}}$.extend($.easing,{def:"easeOutQuad",swing:function(x){return $.easing[$.easing.def](x)},easeInQuad:function(x){return x*x},easeOutQuad:function(x){return 1-(1-x)*(1-x)},easeInOutQuad:function(x){return x<.5?2*x*x:1-pow(-2*x+2,2)/2},easeInCubic:function(x){return x*x*x},easeOutCubic:function(x){return 1-pow(1-x,3)},easeInOutCubic:function(x){return x<.5?4*x*x*x:1-pow(-2*x+2,3)/2},easeInQuart:function(x){return x*x*x*x},easeOutQuart:function(x){return 1-pow(1-x,4)},easeInOutQuart:function(x){return x<.5?8*x*x*x*x:1-pow(-2*x+2,4)/2},easeInQuint:function(x){return x*x*x*x*x},easeOutQuint:function(x){return 1-pow(1-x,5)},easeInOutQuint:function(x){return x<.5?16*x*x*x*x*x:1-pow(-2*x+2,5)/2},easeInSine:function(x){return 1-cos(x*PI/2)},easeOutSine:function(x){return sin(x*PI/2)},easeInOutSine:function(x){return-(cos(PI*x)-1)/2},easeInExpo:function(x){return x===0?0:pow(2,10*x-10)},easeOutExpo:function(x){return x===1?1:1-pow(2,-10*x)},easeInOutExpo:function(x){return x===0?0:x===1?1:x<.5?pow(2,20*x-10)/2:(2-pow(2,-20*x+10))/2},easeInCirc:function(x){return 1-sqrt(1-pow(x,2))},easeOutCirc:function(x){return sqrt(1-pow(x-1,2))},easeInOutCirc:function(x){return x<.5?(1-sqrt(1-pow(2*x,2)))/2:(sqrt(1-pow(-2*x+2,2))+1)/2},easeInElastic:function(x){return x===0?0:x===1?1:-pow(2,10*x-10)*sin((x*10-10.75)*c4)},easeOutElastic:function(x){return x===0?0:x===1?1:pow(2,-10*x)*sin((x*10-.75)*c4)+1},easeInOutElastic:function(x){return x===0?0:x===1?1:x<.5?-(pow(2,20*x-10)*sin((20*x-11.125)*c5))/2:pow(2,-20*x+10)*sin((20*x-11.125)*c5)/2+1},easeInBack:function(x){return c3*x*x*x-c1*x*x},easeOutBack:function(x){return 1+c3*pow(x-1,3)+c1*pow(x-1,2)},easeInOutBack:function(x){return x<.5?pow(2*x,2)*((c2+1)*2*x-c2)/2:(pow(2*x-2,2)*((c2+1)*(x*2-2)+c2)+2)/2},easeInBounce:function(x){return 1-bounceOut(1-x)},easeOutBounce:bounceOut,easeInOutBounce:function(x){return x<.5?(1-bounceOut(1-2*x))/2:(1+bounceOut(2*x-1))/2}})});
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,23 @@
|
||||
Copyright (c) 2014 Owl
|
||||
Modified work Copyright 2016-2018 David Deutsch
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
@@ -0,0 +1,122 @@
|
||||
# Owl Carousel 2
|
||||
|
||||
Touch enabled [jQuery](https://jquery.com/) plugin that lets you create a beautiful, responsive carousel slider. **To get started, check out https://owlcarousel2.github.io/OwlCarousel2/.**
|
||||
|
||||
**Notice:** The old Owl Carousel site (owlgraphic [dot] com) is no longer in use. Please delete all references to this in bookmarks and your own products' documentation as it's being used for malicious purposes.
|
||||
|
||||
## Quick start
|
||||
|
||||
### Install
|
||||
|
||||
This package can be installed with:
|
||||
|
||||
- [npm](https://www.npmjs.com/package/owl.carousel): `npm install --save owl.carousel` or `yarn add owl.carousel jquery`
|
||||
- [bower](http://bower.io/search/?q=owl.carousel): `bower install --save owl.carousel`
|
||||
|
||||
Or download the [latest release](https://github.com/OwlCarousel2/OwlCarousel2/releases).
|
||||
|
||||
### Load
|
||||
|
||||
#### Webpack
|
||||
|
||||
Add jQuery via the "webpack.ProvidePlugin" to your webpack configuration:
|
||||
|
||||
const webpack = require('webpack');
|
||||
|
||||
//...
|
||||
plugins: [
|
||||
new webpack.ProvidePlugin({
|
||||
$: 'jquery',
|
||||
jQuery: 'jquery',
|
||||
'window.jQuery': 'jquery'
|
||||
}),
|
||||
],
|
||||
//...
|
||||
|
||||
Load the required stylesheet and JS:
|
||||
|
||||
```js
|
||||
import 'owl.carousel/dist/assets/owl.carousel.css';
|
||||
import 'owl.carousel';
|
||||
```
|
||||
|
||||
#### Static HTML
|
||||
|
||||
Put the required stylesheet at the [top](https://developer.yahoo.com/performance/rules.html#css_top) of your markup:
|
||||
|
||||
```html
|
||||
<link rel="stylesheet" href="/node_modules/owl.carousel/dist/assets/owl.carousel.min.css" />
|
||||
```
|
||||
|
||||
```html
|
||||
<link rel="stylesheet" href="/bower_components/owl.carousel/dist/assets/owl.carousel.min.css" />
|
||||
```
|
||||
|
||||
**NOTE:** If you want to use the default navigation styles, you will also need to include `owl.theme.default.css`.
|
||||
|
||||
|
||||
Put the script at the [bottom](https://developer.yahoo.com/performance/rules.html#js_bottom) of your markup right after jQuery:
|
||||
|
||||
```html
|
||||
<script src="/node_modules/jquery/dist/jquery.js"></script>
|
||||
<script src="/node_modules/owl.carousel/dist/owl.carousel.min.js"></script>
|
||||
```
|
||||
|
||||
```html
|
||||
<script src="/bower_components/jquery/dist/jquery.js"></script>
|
||||
<script src="/bower_components/owl.carousel/dist/owl.carousel.min.js"></script>
|
||||
```
|
||||
|
||||
### Usage
|
||||
|
||||
Wrap your items (`div`, `a`, `img`, `span`, `li` etc.) with a container element (`div`, `ul` etc.). Only the class `owl-carousel` is mandatory to apply proper styles:
|
||||
|
||||
```html
|
||||
<div class="owl-carousel owl-theme">
|
||||
<div> Your Content </div>
|
||||
<div> Your Content </div>
|
||||
<div> Your Content </div>
|
||||
<div> Your Content </div>
|
||||
<div> Your Content </div>
|
||||
<div> Your Content </div>
|
||||
<div> Your Content </div>
|
||||
</div>
|
||||
```
|
||||
**NOTE:** The `owl-theme` class is optional, but without it, you will need to style navigation features on your own.
|
||||
|
||||
|
||||
Call the [plugin](https://learn.jquery.com/plugins/) function and your carousel is ready.
|
||||
|
||||
```javascript
|
||||
$(document).ready(function(){
|
||||
$('.owl-carousel').owlCarousel();
|
||||
});
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
The documentation, included in this repo in the root directory, is built with [Assemble](http://assemble.io/) and publicly available at https://owlcarousel2.github.io/OwlCarousel2/. The documentation may also be run locally.
|
||||
|
||||
## Building
|
||||
|
||||
This package comes with [Grunt](http://gruntjs.com/) and [Bower](http://bower.io/). The following tasks are available:
|
||||
|
||||
* `default` compiles the CSS and JS into `/dist` and builds the doc.
|
||||
* `dist` compiles the CSS and JS into `/dist` only.
|
||||
* `watch` watches source files and builds them automatically whenever you save.
|
||||
* `test` runs [JSHint](http://www.jshint.com/) and [QUnit](http://qunitjs.com/) tests headlessly in [PhantomJS](http://phantomjs.org/).
|
||||
|
||||
To define which plugins are build into the distribution just edit `/_config.json` to fit your needs.
|
||||
|
||||
## Contributing
|
||||
|
||||
Please read [CONTRIBUTING.md](CONTRIBUTING.md).
|
||||
|
||||
## Roadmap
|
||||
|
||||
Please make sure to check out our [Roadmap Discussion](https://github.com/OwlCarousel2/OwlCarousel2/issues/1756).
|
||||
|
||||
|
||||
## License
|
||||
|
||||
The code and the documentation are released under the [MIT License](LICENSE).
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 3.1 KiB |
+186
@@ -0,0 +1,186 @@
|
||||
/**
|
||||
* Owl Carousel v2.3.4
|
||||
* Copyright 2013-2018 David Deutsch
|
||||
* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
|
||||
*/
|
||||
/*
|
||||
* Owl Carousel - Core
|
||||
*/
|
||||
.owl-carousel {
|
||||
display: none;
|
||||
width: 100%;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
/* position relative and z-index fix webkit rendering fonts issue */
|
||||
position: relative;
|
||||
z-index: 1; }
|
||||
.owl-carousel .owl-stage {
|
||||
position: relative;
|
||||
-ms-touch-action: pan-Y;
|
||||
touch-action: manipulation;
|
||||
-moz-backface-visibility: hidden;
|
||||
/* fix firefox animation glitch */ }
|
||||
.owl-carousel .owl-stage:after {
|
||||
content: ".";
|
||||
display: block;
|
||||
clear: both;
|
||||
visibility: hidden;
|
||||
line-height: 0;
|
||||
height: 0; }
|
||||
.owl-carousel .owl-stage-outer {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
/* fix for flashing background */
|
||||
-webkit-transform: translate3d(0px, 0px, 0px); }
|
||||
.owl-carousel .owl-wrapper,
|
||||
.owl-carousel .owl-item {
|
||||
-webkit-backface-visibility: hidden;
|
||||
-moz-backface-visibility: hidden;
|
||||
-ms-backface-visibility: hidden;
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
-moz-transform: translate3d(0, 0, 0);
|
||||
-ms-transform: translate3d(0, 0, 0); }
|
||||
.owl-carousel .owl-item {
|
||||
position: relative;
|
||||
min-height: 1px;
|
||||
float: left;
|
||||
-webkit-backface-visibility: hidden;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
-webkit-touch-callout: none; }
|
||||
.owl-carousel .owl-item img {
|
||||
display: block;
|
||||
width: 100%; }
|
||||
.owl-carousel .owl-nav.disabled,
|
||||
.owl-carousel .owl-dots.disabled {
|
||||
display: none; }
|
||||
.owl-carousel .owl-nav .owl-prev,
|
||||
.owl-carousel .owl-nav .owl-next,
|
||||
.owl-carousel .owl-dot {
|
||||
cursor: pointer;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none; }
|
||||
.owl-carousel .owl-nav button.owl-prev,
|
||||
.owl-carousel .owl-nav button.owl-next,
|
||||
.owl-carousel button.owl-dot {
|
||||
background: none;
|
||||
color: inherit;
|
||||
border: none;
|
||||
padding: 0 !important;
|
||||
font: inherit; }
|
||||
.owl-carousel.owl-loaded {
|
||||
display: block; }
|
||||
.owl-carousel.owl-loading {
|
||||
opacity: 0;
|
||||
display: block; }
|
||||
.owl-carousel.owl-hidden {
|
||||
opacity: 0; }
|
||||
.owl-carousel.owl-refresh .owl-item {
|
||||
visibility: hidden; }
|
||||
.owl-carousel.owl-drag .owl-item {
|
||||
-ms-touch-action: pan-y;
|
||||
touch-action: pan-y;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none; }
|
||||
.owl-carousel.owl-grab {
|
||||
cursor: move;
|
||||
cursor: grab; }
|
||||
.owl-carousel.owl-rtl {
|
||||
direction: rtl; }
|
||||
.owl-carousel.owl-rtl .owl-item {
|
||||
float: right; }
|
||||
|
||||
/* No Js */
|
||||
.no-js .owl-carousel {
|
||||
display: block; }
|
||||
|
||||
/*
|
||||
* Owl Carousel - Animate Plugin
|
||||
*/
|
||||
.owl-carousel .animated {
|
||||
animation-duration: 1000ms;
|
||||
animation-fill-mode: both; }
|
||||
|
||||
.owl-carousel .owl-animated-in {
|
||||
z-index: 0; }
|
||||
|
||||
.owl-carousel .owl-animated-out {
|
||||
z-index: 1; }
|
||||
|
||||
.owl-carousel .fadeOut {
|
||||
animation-name: fadeOut; }
|
||||
|
||||
@keyframes fadeOut {
|
||||
0% {
|
||||
opacity: 1; }
|
||||
100% {
|
||||
opacity: 0; } }
|
||||
|
||||
/*
|
||||
* Owl Carousel - Auto Height Plugin
|
||||
*/
|
||||
.owl-height {
|
||||
transition: height 500ms ease-in-out; }
|
||||
|
||||
/*
|
||||
* Owl Carousel - Lazy Load Plugin
|
||||
*/
|
||||
.owl-carousel .owl-item {
|
||||
/**
|
||||
This is introduced due to a bug in IE11 where lazy loading combined with autoheight plugin causes a wrong
|
||||
calculation of the height of the owl-item that breaks page layouts
|
||||
*/ }
|
||||
.owl-carousel .owl-item .owl-lazy {
|
||||
opacity: 0;
|
||||
transition: opacity 400ms ease; }
|
||||
.owl-carousel .owl-item .owl-lazy[src^=""], .owl-carousel .owl-item .owl-lazy:not([src]) {
|
||||
max-height: 0; }
|
||||
.owl-carousel .owl-item img.owl-lazy {
|
||||
transform-style: preserve-3d; }
|
||||
|
||||
/*
|
||||
* Owl Carousel - Video Plugin
|
||||
*/
|
||||
.owl-carousel .owl-video-wrapper {
|
||||
position: relative;
|
||||
height: 100%;
|
||||
background: #000; }
|
||||
|
||||
.owl-carousel .owl-video-play-icon {
|
||||
position: absolute;
|
||||
height: 80px;
|
||||
width: 80px;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
margin-left: -40px;
|
||||
margin-top: -40px;
|
||||
background: url("owl.video.play.png") no-repeat;
|
||||
cursor: pointer;
|
||||
z-index: 1;
|
||||
-webkit-backface-visibility: hidden;
|
||||
transition: transform 100ms ease; }
|
||||
|
||||
.owl-carousel .owl-video-play-icon:hover {
|
||||
-ms-transform: scale(1.3, 1.3);
|
||||
transform: scale(1.3, 1.3); }
|
||||
|
||||
.owl-carousel .owl-video-playing .owl-video-tn,
|
||||
.owl-carousel .owl-video-playing .owl-video-play-icon {
|
||||
display: none; }
|
||||
|
||||
.owl-carousel .owl-video-tn {
|
||||
opacity: 0;
|
||||
height: 100%;
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
transition: opacity 400ms ease; }
|
||||
|
||||
.owl-carousel .owl-video-frame {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
height: 100%;
|
||||
width: 100%; }
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
/**
|
||||
* Owl Carousel v2.3.4
|
||||
* Copyright 2013-2018 David Deutsch
|
||||
* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
|
||||
*/
|
||||
.owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;touch-action:manipulation;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel .owl-nav button.owl-next,.owl-carousel .owl-nav button.owl-prev,.owl-carousel button.owl-dot{background:0 0;color:inherit;border:none;padding:0!important;font:inherit}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-ms-touch-action:pan-y;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item .owl-lazy:not([src]),.owl-carousel .owl-item .owl-lazy[src^=""]{max-height:0}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%}
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
/**
|
||||
* Owl Carousel v2.3.4
|
||||
* Copyright 2013-2018 David Deutsch
|
||||
* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
|
||||
*/
|
||||
/*
|
||||
* Default theme - Owl Carousel CSS File
|
||||
*/
|
||||
.owl-theme .owl-nav {
|
||||
margin-top: 10px;
|
||||
text-align: center;
|
||||
-webkit-tap-highlight-color: transparent; }
|
||||
.owl-theme .owl-nav [class*='owl-'] {
|
||||
color: #FFF;
|
||||
font-size: 14px;
|
||||
margin: 5px;
|
||||
padding: 4px 7px;
|
||||
background: #D6D6D6;
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
border-radius: 3px; }
|
||||
.owl-theme .owl-nav [class*='owl-']:hover {
|
||||
background: #869791;
|
||||
color: #FFF;
|
||||
text-decoration: none; }
|
||||
.owl-theme .owl-nav .disabled {
|
||||
opacity: 0.5;
|
||||
cursor: default; }
|
||||
|
||||
.owl-theme .owl-nav.disabled + .owl-dots {
|
||||
margin-top: 10px; }
|
||||
|
||||
.owl-theme .owl-dots {
|
||||
text-align: center;
|
||||
-webkit-tap-highlight-color: transparent; }
|
||||
.owl-theme .owl-dots .owl-dot {
|
||||
display: inline-block;
|
||||
zoom: 1;
|
||||
*display: inline; }
|
||||
.owl-theme .owl-dots .owl-dot span {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
margin: 5px 7px;
|
||||
background: #D6D6D6;
|
||||
display: block;
|
||||
-webkit-backface-visibility: visible;
|
||||
transition: opacity 200ms ease;
|
||||
border-radius: 30px; }
|
||||
.owl-theme .owl-dots .owl-dot.active span, .owl-theme .owl-dots .owl-dot:hover span {
|
||||
background: #869791; }
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
/**
|
||||
* Owl Carousel v2.3.4
|
||||
* Copyright 2013-2018 David Deutsch
|
||||
* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
|
||||
*/
|
||||
.owl-theme .owl-dots,.owl-theme .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent}.owl-theme .owl-nav{margin-top:10px}.owl-theme .owl-nav [class*=owl-]{color:#FFF;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px}.owl-theme .owl-nav [class*=owl-]:hover{background:#869791;color:#FFF;text-decoration:none}.owl-theme .owl-nav .disabled{opacity:.5;cursor:default}.owl-theme .owl-nav.disabled+.owl-dots{margin-top:10px}.owl-theme .owl-dots .owl-dot{display:inline-block;zoom:1}.owl-theme .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}.owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#869791}
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
/**
|
||||
* Owl Carousel v2.3.4
|
||||
* Copyright 2013-2018 David Deutsch
|
||||
* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
|
||||
*/
|
||||
/*
|
||||
* Green theme - Owl Carousel CSS File
|
||||
*/
|
||||
.owl-theme .owl-nav {
|
||||
margin-top: 10px;
|
||||
text-align: center;
|
||||
-webkit-tap-highlight-color: transparent; }
|
||||
.owl-theme .owl-nav [class*='owl-'] {
|
||||
color: #FFF;
|
||||
font-size: 14px;
|
||||
margin: 5px;
|
||||
padding: 4px 7px;
|
||||
background: #D6D6D6;
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
border-radius: 3px; }
|
||||
.owl-theme .owl-nav [class*='owl-']:hover {
|
||||
background: #4DC7A0;
|
||||
color: #FFF;
|
||||
text-decoration: none; }
|
||||
.owl-theme .owl-nav .disabled {
|
||||
opacity: 0.5;
|
||||
cursor: default; }
|
||||
|
||||
.owl-theme .owl-nav.disabled + .owl-dots {
|
||||
margin-top: 10px; }
|
||||
|
||||
.owl-theme .owl-dots {
|
||||
text-align: center;
|
||||
-webkit-tap-highlight-color: transparent; }
|
||||
.owl-theme .owl-dots .owl-dot {
|
||||
display: inline-block;
|
||||
zoom: 1;
|
||||
*display: inline; }
|
||||
.owl-theme .owl-dots .owl-dot span {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
margin: 5px 7px;
|
||||
background: #D6D6D6;
|
||||
display: block;
|
||||
-webkit-backface-visibility: visible;
|
||||
transition: opacity 200ms ease;
|
||||
border-radius: 30px; }
|
||||
.owl-theme .owl-dots .owl-dot.active span, .owl-theme .owl-dots .owl-dot:hover span {
|
||||
background: #4DC7A0; }
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
/**
|
||||
* Owl Carousel v2.3.4
|
||||
* Copyright 2013-2018 David Deutsch
|
||||
* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
|
||||
*/
|
||||
.owl-theme .owl-dots,.owl-theme .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent}.owl-theme .owl-nav{margin-top:10px}.owl-theme .owl-nav [class*=owl-]{color:#FFF;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px}.owl-theme .owl-nav [class*=owl-]:hover{background:#4DC7A0;color:#FFF;text-decoration:none}.owl-theme .owl-nav .disabled{opacity:.5;cursor:default}.owl-theme .owl-nav.disabled+.owl-dots{margin-top:10px}.owl-theme .owl-dots .owl-dot{display:inline-block;zoom:1}.owl-theme .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}.owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#4DC7A0}
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 4.9 KiB |
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,126 @@
|
||||
jQuery(document).ready(function($) {
|
||||
"use strict";
|
||||
|
||||
//Contact
|
||||
$('form.php-email-form').submit(function() {
|
||||
|
||||
var f = $(this).find('.form-group'),
|
||||
ferror = false,
|
||||
emailExp = /^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i;
|
||||
|
||||
f.children('input').each(function() { // run all inputs
|
||||
|
||||
var i = $(this); // current input
|
||||
var rule = i.attr('data-rule');
|
||||
|
||||
if (rule !== undefined) {
|
||||
var ierror = false; // error flag for current input
|
||||
var pos = rule.indexOf(':', 0);
|
||||
if (pos >= 0) {
|
||||
var exp = rule.substr(pos + 1, rule.length);
|
||||
rule = rule.substr(0, pos);
|
||||
} else {
|
||||
rule = rule.substr(pos + 1, rule.length);
|
||||
}
|
||||
|
||||
switch (rule) {
|
||||
case 'required':
|
||||
if (i.val() === '') {
|
||||
ferror = ierror = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'minlen':
|
||||
if (i.val().length < parseInt(exp)) {
|
||||
ferror = ierror = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'email':
|
||||
if (!emailExp.test(i.val())) {
|
||||
ferror = ierror = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'checked':
|
||||
if (! i.is(':checked')) {
|
||||
ferror = ierror = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'regexp':
|
||||
exp = new RegExp(exp);
|
||||
if (!exp.test(i.val())) {
|
||||
ferror = ierror = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
i.next('.validate').html((ierror ? (i.attr('data-msg') !== undefined ? i.attr('data-msg') : 'wrong Input') : '')).show('blind');
|
||||
}
|
||||
});
|
||||
f.children('textarea').each(function() { // run all inputs
|
||||
|
||||
var i = $(this); // current input
|
||||
var rule = i.attr('data-rule');
|
||||
|
||||
if (rule !== undefined) {
|
||||
var ierror = false; // error flag for current input
|
||||
var pos = rule.indexOf(':', 0);
|
||||
if (pos >= 0) {
|
||||
var exp = rule.substr(pos + 1, rule.length);
|
||||
rule = rule.substr(0, pos);
|
||||
} else {
|
||||
rule = rule.substr(pos + 1, rule.length);
|
||||
}
|
||||
|
||||
switch (rule) {
|
||||
case 'required':
|
||||
if (i.val() === '') {
|
||||
ferror = ierror = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'minlen':
|
||||
if (i.val().length < parseInt(exp)) {
|
||||
ferror = ierror = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
i.next('.validate').html((ierror ? (i.attr('data-msg') != undefined ? i.attr('data-msg') : 'wrong Input') : '')).show('blind');
|
||||
}
|
||||
});
|
||||
if (ferror) return false;
|
||||
else var str = $(this).serialize();
|
||||
|
||||
var this_form = $(this);
|
||||
var action = $(this).attr('action');
|
||||
|
||||
if( ! action ) {
|
||||
this_form.find('.loading').slideUp();
|
||||
this_form.find('.error-message').slideDown().html('The form action property is not set!');
|
||||
return false;
|
||||
}
|
||||
|
||||
this_form.find('.sent-message').slideUp();
|
||||
this_form.find('.error-message').slideUp();
|
||||
this_form.find('.loading').slideDown();
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: action,
|
||||
data: str,
|
||||
success: function(msg) {
|
||||
if (msg == 'OK') {
|
||||
this_form.find('.loading').slideUp();
|
||||
this_form.find('.sent-message').slideDown();
|
||||
this_form.find("input:not(input[type=submit]), textarea").val('');
|
||||
} else {
|
||||
this_form.find('.loading').slideUp();
|
||||
this_form.find('.error-message').slideDown().html(msg);
|
||||
}
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,808 @@
|
||||
/*
|
||||
* VenoBox - jQuery Plugin
|
||||
* version: 1.8.9
|
||||
* @requires jQuery >= 1.7.0
|
||||
*
|
||||
* Examples at http://veno.es/venobox/
|
||||
* License: MIT License
|
||||
* License URI: https://github.com/nicolafranchini/VenoBox/blob/master/LICENSE
|
||||
* Copyright 2013-2020 Nicola Franchini - @nicolafranchini
|
||||
*
|
||||
*/
|
||||
|
||||
/* global jQuery */
|
||||
|
||||
(function($){
|
||||
"use strict";
|
||||
var autoplay, bgcolor, blockleft, blocknum, blockshare, blocktitle, border, core, container, content, dest, extraCss,
|
||||
framewidth, frameheight, gallItems, infinigall, items, keyNavigationDisabled, margine, numeratio,
|
||||
overlayColor, overlay, title, thisgall, thenext, theprev, nextok, prevok, preloader, $preloader, navigation,
|
||||
obj, gallIndex, startouch, vbheader, images, startY, startX, endY, endX, diff, diffX, diffY, threshold,
|
||||
share, sharelinks, vbfooter, sharepos;
|
||||
|
||||
var pinIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 24"><path d="M12 0c-6.627 0-12 5.372-12 12 0 5.084 3.163 9.426 7.627 11.174-.105-.949-.2-2.405.042-3.441.218-.937 1.407-5.965 1.407-5.965s-.359-.719-.359-1.782c0-1.668.967-2.914 2.171-2.914 1.023 0 1.518.769 1.518 1.69 0 1.029-.655 2.568-.994 3.995-.283 1.194.599 2.169 1.777 2.169 2.133 0 3.772-2.249 3.772-5.495 0-2.873-2.064-4.882-5.012-4.882-3.414 0-5.418 2.561-5.418 5.207 0 1.031.397 2.138.893 2.738.098.119.112.224.083.345l-.333 1.36c-.053.22-.174.267-.402.161-1.499-.698-2.436-2.889-2.436-4.649 0-3.785 2.75-7.262 7.929-7.262 4.163 0 7.398 2.967 7.398 6.931 0 4.136-2.607 7.464-6.227 7.464-1.216 0-2.359-.631-2.75-1.378l-.748 2.853c-.271 1.043-1.002 2.35-1.492 3.146 1.124.347 2.317.535 3.554.535 6.627 0 12-5.373 12-12 0-6.628-5.373-12-12-12z" fill-rule="evenodd" clip-rule="evenodd"/></svg>';
|
||||
var fbIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 24"><path d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm3 8h-1.35c-.538 0-.65.221-.65.778v1.222h2l-.209 2h-1.791v7h-3v-7h-2v-2h2v-2.308c0-1.769.931-2.692 3.029-2.692h1.971v3z"/></svg>';
|
||||
var twitterIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 24"><path d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm6.066 9.645c.183 4.04-2.83 8.544-8.164 8.544-1.622 0-3.131-.476-4.402-1.291 1.524.18 3.045-.244 4.252-1.189-1.256-.023-2.317-.854-2.684-1.995.451.086.895.061 1.298-.049-1.381-.278-2.335-1.522-2.304-2.853.388.215.83.344 1.301.359-1.279-.855-1.641-2.544-.889-3.835 1.416 1.738 3.533 2.881 5.92 3.001-.419-1.796.944-3.527 2.799-3.527.825 0 1.572.349 2.096.907.654-.128 1.27-.368 1.824-.697-.215.671-.67 1.233-1.263 1.589.581-.07 1.135-.224 1.649-.453-.384.578-.87 1.084-1.433 1.489z"/></svg>';
|
||||
var linkedinIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 24"><path d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm-2 16h-2v-6h2v6zm-1-6.891c-.607 0-1.1-.496-1.1-1.109 0-.612.492-1.109 1.1-1.109s1.1.497 1.1 1.109c0 .613-.493 1.109-1.1 1.109zm8 6.891h-1.998v-2.861c0-1.881-2.002-1.722-2.002 0v2.861h-2v-6h2v1.093c.872-1.616 4-1.736 4 1.548v3.359z"/></svg>';
|
||||
var downloadIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 24"><path d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm2 9h-4v-1h4v1zm0-3v1h-4v-1h4zm-2 13l-6-6h4v-3h4v3h4l-6 6z"/></svg>';
|
||||
|
||||
$.fn.extend({
|
||||
//plugin name - venobox
|
||||
venobox: function(options) {
|
||||
var plugin = this;
|
||||
// default options
|
||||
var defaults = {
|
||||
arrowsColor : '#B6B6B6',
|
||||
autoplay : false, // same as data-autoplay - thanks @codibit
|
||||
bgcolor: '#fff',
|
||||
border: '0',
|
||||
closeBackground : 'transparent',
|
||||
closeColor : "#d2d2d2",
|
||||
framewidth: '',
|
||||
frameheight: '',
|
||||
gallItems: false,
|
||||
infinigall: false,
|
||||
htmlClose : '×',
|
||||
htmlNext : '<span>Next</span>',
|
||||
htmlPrev : '<span>Prev</span>',
|
||||
numeratio: false,
|
||||
numerationBackground : '#161617',
|
||||
numerationColor : '#d2d2d2',
|
||||
numerationPosition : 'top', // 'top' || 'bottom'
|
||||
overlayClose: true, // disable overlay click-close - thanx @martybalandis
|
||||
overlayColor : 'rgba(23,23,23,0.85)',
|
||||
spinner : 'double-bounce', // available: 'rotating-plane' | 'double-bounce' | 'wave' | 'wandering-cubes' | 'spinner-pulse' | 'chasing-dots' | 'three-bounce' | 'circle' | 'cube-grid' | 'fading-circle' | 'folding-cube'
|
||||
spinColor : '#d2d2d2',
|
||||
titleattr: 'title', // specific attribute to get a title (e.g. [data-title]) - thanx @mendezcode
|
||||
titleBackground: '#161617',
|
||||
titleColor: '#d2d2d2',
|
||||
titlePosition : 'top', // 'top' || 'bottom'
|
||||
share: [ 'facebook', 'twitter', 'linkedin', 'pinterest', 'download' ],
|
||||
cb_pre_open: function(){ return true; }, // Callbacks - thanx @garyee
|
||||
cb_post_open: function(){},
|
||||
cb_pre_close: function(){ return true; },
|
||||
cb_post_close: function(){},
|
||||
cb_post_resize: function(){},
|
||||
cb_after_nav: function(){},
|
||||
cb_content_loaded: function(){},
|
||||
cb_init: function(){}
|
||||
};
|
||||
|
||||
var option = $.extend(defaults, options);
|
||||
|
||||
// callback plugin initialization
|
||||
option.cb_init(plugin);
|
||||
|
||||
return this.each(function() {
|
||||
|
||||
obj = $(this);
|
||||
|
||||
// Prevent double initialization - thanx @matthistuff
|
||||
if (obj.data('venobox')) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// method to be used outside the plugin
|
||||
plugin.VBclose = function() {
|
||||
closeVbox();
|
||||
};
|
||||
obj.addClass('vbox-item');
|
||||
obj.data('framewidth', option.framewidth);
|
||||
obj.data('frameheight', option.frameheight);
|
||||
obj.data('border', option.border);
|
||||
obj.data('bgcolor', option.bgcolor);
|
||||
obj.data('numeratio', option.numeratio);
|
||||
obj.data('gallItems', option.gallItems);
|
||||
obj.data('infinigall', option.infinigall);
|
||||
obj.data('overlaycolor', option.overlayColor);
|
||||
obj.data('titleattr', option.titleattr);
|
||||
obj.data('share', option.share);
|
||||
|
||||
obj.data('venobox', true);
|
||||
|
||||
obj.on('click', function(e){
|
||||
|
||||
e.preventDefault();
|
||||
obj = $(this);
|
||||
|
||||
// callback plugin initialization
|
||||
var cb_pre_open = option.cb_pre_open(obj);
|
||||
|
||||
if (cb_pre_open === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// methods to be used outside the plugin
|
||||
plugin.VBnext = function() {
|
||||
navigateGall(thenext);
|
||||
};
|
||||
plugin.VBprev = function() {
|
||||
navigateGall(theprev);
|
||||
};
|
||||
|
||||
overlayColor = obj.data('overlay') || obj.data('overlaycolor');
|
||||
|
||||
framewidth = obj.data('framewidth');
|
||||
frameheight = obj.data('frameheight');
|
||||
// set data-autoplay="true" for vimeo and youtube videos - thanx @zehfernandes
|
||||
autoplay = obj.data('autoplay') || option.autoplay;
|
||||
border = obj.data('border');
|
||||
bgcolor = obj.data('bgcolor');
|
||||
nextok = false;
|
||||
prevok = false;
|
||||
keyNavigationDisabled = false;
|
||||
|
||||
// set a different url to be loaded using data-href="" - thanx @pixeline
|
||||
dest = obj.data('href') || obj.attr('href');
|
||||
extraCss = obj.data( 'css' ) || '';
|
||||
title = obj.attr(obj.data('titleattr')) || '';
|
||||
share = obj.data('share');
|
||||
|
||||
preloader = '<div class="vbox-preloader">';
|
||||
|
||||
switch (option.spinner) {
|
||||
|
||||
case 'rotating-plane':
|
||||
preloader += '<div class="sk-rotating-plane"></div>';
|
||||
break;
|
||||
case 'double-bounce':
|
||||
preloader += '<div class="sk-double-bounce">'+
|
||||
'<div class="sk-child sk-double-bounce1"></div>'+
|
||||
'<div class="sk-child sk-double-bounce2"></div>'+
|
||||
'</div>';
|
||||
break;
|
||||
case 'wave':
|
||||
preloader += '<div class="sk-wave">'+
|
||||
'<div class="sk-rect sk-rect1"></div>'+
|
||||
'<div class="sk-rect sk-rect2"></div>'+
|
||||
'<div class="sk-rect sk-rect3"></div>'+
|
||||
'<div class="sk-rect sk-rect4"></div>'+
|
||||
'<div class="sk-rect sk-rect5"></div>'+
|
||||
'</div>';
|
||||
break;
|
||||
case 'wandering-cubes':
|
||||
preloader += '<div class="sk-wandering-cubes">'+
|
||||
'<div class="sk-cube sk-cube1"></div>'+
|
||||
'<div class="sk-cube sk-cube2"></div>'+
|
||||
'</div>';
|
||||
break;
|
||||
case 'spinner-pulse':
|
||||
preloader += '<div class="sk-spinner sk-spinner-pulse"></div>';
|
||||
break;
|
||||
case 'chasing-dots':
|
||||
preloader += '<div class="sk-chasing-dots">'+
|
||||
'<div class="sk-child sk-dot1"></div>'+
|
||||
'<div class="sk-child sk-dot2"></div>'+
|
||||
'</div>';
|
||||
break;
|
||||
case 'three-bounce':
|
||||
preloader += '<div class="sk-three-bounce">'+
|
||||
'<div class="sk-child sk-bounce1"></div>'+
|
||||
'<div class="sk-child sk-bounce2"></div>'+
|
||||
'<div class="sk-child sk-bounce3"></div>'+
|
||||
'</div>';
|
||||
break;
|
||||
case 'circle':
|
||||
preloader += '<div class="sk-circle">'+
|
||||
'<div class="sk-circle1 sk-child"></div>'+
|
||||
'<div class="sk-circle2 sk-child"></div>'+
|
||||
'<div class="sk-circle3 sk-child"></div>'+
|
||||
'<div class="sk-circle4 sk-child"></div>'+
|
||||
'<div class="sk-circle5 sk-child"></div>'+
|
||||
'<div class="sk-circle6 sk-child"></div>'+
|
||||
'<div class="sk-circle7 sk-child"></div>'+
|
||||
'<div class="sk-circle8 sk-child"></div>'+
|
||||
'<div class="sk-circle9 sk-child"></div>'+
|
||||
'<div class="sk-circle10 sk-child"></div>'+
|
||||
'<div class="sk-circle11 sk-child"></div>'+
|
||||
'<div class="sk-circle12 sk-child"></div>'+
|
||||
'</div>';
|
||||
break;
|
||||
case 'cube-grid':
|
||||
preloader += '<div class="sk-cube-grid">'+
|
||||
'<div class="sk-cube sk-cube1"></div>'+
|
||||
'<div class="sk-cube sk-cube2"></div>'+
|
||||
'<div class="sk-cube sk-cube3"></div>'+
|
||||
'<div class="sk-cube sk-cube4"></div>'+
|
||||
'<div class="sk-cube sk-cube5"></div>'+
|
||||
'<div class="sk-cube sk-cube6"></div>'+
|
||||
'<div class="sk-cube sk-cube7"></div>'+
|
||||
'<div class="sk-cube sk-cube8"></div>'+
|
||||
'<div class="sk-cube sk-cube9"></div>'+
|
||||
'</div>';
|
||||
break;
|
||||
case 'fading-circle':
|
||||
preloader += '<div class="sk-fading-circle">'+
|
||||
'<div class="sk-circle1 sk-circle"></div>'+
|
||||
'<div class="sk-circle2 sk-circle"></div>'+
|
||||
'<div class="sk-circle3 sk-circle"></div>'+
|
||||
'<div class="sk-circle4 sk-circle"></div>'+
|
||||
'<div class="sk-circle5 sk-circle"></div>'+
|
||||
'<div class="sk-circle6 sk-circle"></div>'+
|
||||
'<div class="sk-circle7 sk-circle"></div>'+
|
||||
'<div class="sk-circle8 sk-circle"></div>'+
|
||||
'<div class="sk-circle9 sk-circle"></div>'+
|
||||
'<div class="sk-circle10 sk-circle"></div>'+
|
||||
'<div class="sk-circle11 sk-circle"></div>'+
|
||||
'<div class="sk-circle12 sk-circle"></div>'+
|
||||
'</div>';
|
||||
break;
|
||||
case 'folding-cube':
|
||||
preloader += '<div class="sk-folding-cube">'+
|
||||
'<div class="sk-cube1 sk-cube"></div>'+
|
||||
'<div class="sk-cube2 sk-cube"></div>'+
|
||||
'<div class="sk-cube4 sk-cube"></div>'+
|
||||
'<div class="sk-cube3 sk-cube"></div>'+
|
||||
'</div>';
|
||||
break;
|
||||
}
|
||||
preloader += '</div>';
|
||||
|
||||
navigation = '<a class="vbox-next">' + option.htmlNext + '</a><a class="vbox-prev">' + option.htmlPrev + '</a>';
|
||||
vbheader = '<div class="vbox-title"></div><div class="vbox-left"><div class="vbox-num">0/0</div></div><div class="vbox-close">' + option.htmlClose + '</div>';
|
||||
vbfooter = '<div class="vbox-share"></div>';
|
||||
|
||||
core = '<div class="vbox-overlay ' + extraCss + '" style="background:'+ overlayColor +'">'+
|
||||
preloader + '<div class="vbox-container"><div class="vbox-content"></div></div>' + vbheader + navigation + vbfooter + '</div>';
|
||||
|
||||
$('body').append(core).addClass('vbox-open');
|
||||
|
||||
$('.vbox-preloader div:not(.sk-circle) .sk-child, .vbox-preloader .sk-rotating-plane, .vbox-preloader .sk-rect, .vbox-preloader div:not(.sk-folding-cube) .sk-cube, .vbox-preloader .sk-spinner-pulse').css('background-color', option.spinColor);
|
||||
|
||||
overlay = $('.vbox-overlay');
|
||||
container = $('.vbox-container');
|
||||
content = $('.vbox-content');
|
||||
blockleft = $('.vbox-left');
|
||||
blocknum = $('.vbox-num');
|
||||
blockshare = $('.vbox-share');
|
||||
blocktitle = $('.vbox-title');
|
||||
$preloader = $('.vbox-preloader');
|
||||
|
||||
$preloader.show();
|
||||
|
||||
if (option.titlePosition == 'top') {
|
||||
sharepos = 'bottom';
|
||||
} else {
|
||||
sharepos = 'top';
|
||||
}
|
||||
blockshare.css(sharepos, '-1px');
|
||||
blockshare.css({
|
||||
'color' : option.titleColor,
|
||||
'fill' : option.titleColor,
|
||||
'background-color' : option.titleBackground
|
||||
});
|
||||
|
||||
blocktitle.css(option.titlePosition, '-1px',);
|
||||
|
||||
blocktitle.css({
|
||||
'color' : option.titleColor,
|
||||
'background-color' : option.titleBackground
|
||||
});
|
||||
|
||||
$('.vbox-close').css({
|
||||
'color' : option.closeColor,
|
||||
'background-color' : option.closeBackground
|
||||
});
|
||||
|
||||
blockleft.css(option.numerationPosition, '-1px');
|
||||
blockleft.css({
|
||||
'color' : option.numerationColor,
|
||||
'background-color' : option.numerationBackground
|
||||
});
|
||||
|
||||
$('.vbox-next span, .vbox-prev span').css({
|
||||
'border-top-color' : option.arrowsColor,
|
||||
'border-right-color' : option.arrowsColor
|
||||
});
|
||||
|
||||
content.html('');
|
||||
content.css('opacity', '0');
|
||||
overlay.css('opacity', '0');
|
||||
|
||||
checknav();
|
||||
|
||||
// fade in overlay
|
||||
overlay.animate({opacity:1}, 250, function(){
|
||||
|
||||
if (obj.data('vbtype') == 'iframe') {
|
||||
loadIframe();
|
||||
} else if (obj.data('vbtype') == 'inline') {
|
||||
loadInline();
|
||||
} else if (obj.data('vbtype') == 'ajax') {
|
||||
loadAjax();
|
||||
} else if (obj.data('vbtype') == 'video') {
|
||||
loadVid(autoplay);
|
||||
} else {
|
||||
content.html('<img src="'+dest+'">');
|
||||
preloadFirst();
|
||||
}
|
||||
option.cb_post_open(obj, gallIndex, thenext, theprev);
|
||||
});
|
||||
|
||||
/* -------- KEYBOARD ACTIONS -------- */
|
||||
$('body').keydown(keyboardHandler);
|
||||
|
||||
/* -------- PREVGALL -------- */
|
||||
$('.vbox-prev').on('click', function(){
|
||||
navigateGall(theprev);
|
||||
});
|
||||
/* -------- NEXTGALL -------- */
|
||||
$('.vbox-next').on('click', function(){
|
||||
navigateGall(thenext);
|
||||
});
|
||||
|
||||
return false;
|
||||
|
||||
}); // click
|
||||
|
||||
/* -------- CHECK NEXT / PREV -------- */
|
||||
function checknav(){
|
||||
|
||||
thisgall = obj.data('gall');
|
||||
numeratio = obj.data('numeratio');
|
||||
gallItems = obj.data('gallItems');
|
||||
infinigall = obj.data('infinigall');
|
||||
share = obj.data('share');
|
||||
blockshare.html('');
|
||||
if ( obj.data('vbtype') !== 'iframe' && obj.data('vbtype') !== 'inline' && obj.data('vbtype') !== 'ajax' ) {
|
||||
sharelinks = {
|
||||
pinterest : '<a target="_blank" href="https://pinterest.com/pin/create/button/?url='+obj.prop('href')+'&media='+obj.prop('href')+'&description='+title+'">'+pinIcon+'</a>',
|
||||
facebook : '<a target="_blank" href="https://www.facebook.com/sharer/sharer.php?u='+obj.prop('href')+'">'+fbIcon+'</a>',
|
||||
twitter : '<a target="_blank" href="https://twitter.com/intent/tweet?text='+title+'&url='+obj.prop('href')+'">'+twitterIcon+'</a>',
|
||||
linkedin : '<a target="_blank" href="https://www.linkedin.com/sharing/share-offsite/?url='+obj.prop('href')+'">'+linkedinIcon+'</a>',
|
||||
download : '<a target="_blank" href="'+obj.prop('href')+'">'+downloadIcon+'</a>'
|
||||
};
|
||||
$.each( share, function( key, value ) {
|
||||
blockshare.append(sharelinks[value]);
|
||||
});
|
||||
}
|
||||
|
||||
if (gallItems) {
|
||||
items = gallItems;
|
||||
} else {
|
||||
items = $('.vbox-item[data-gall="' + thisgall + '"]');
|
||||
}
|
||||
|
||||
if (items.length < 2) {
|
||||
infinigall = false;
|
||||
numeratio = false;
|
||||
}
|
||||
|
||||
thenext = items.eq( items.index(obj) + 1 );
|
||||
theprev = items.eq( items.index(obj) - 1 );
|
||||
|
||||
if (!thenext.length && infinigall === true) {
|
||||
thenext = items.eq(0);
|
||||
}
|
||||
|
||||
// update gall numeration
|
||||
if (items.length >= 1) {
|
||||
gallIndex = items.index(obj)+1;
|
||||
blocknum.html(gallIndex + ' / ' + items.length);
|
||||
} else {
|
||||
gallIndex = 1;
|
||||
}
|
||||
if (numeratio === true) {
|
||||
blocknum.show();
|
||||
} else {
|
||||
blocknum.hide();
|
||||
}
|
||||
|
||||
// update title
|
||||
if (title !== '') {
|
||||
blocktitle.show();
|
||||
} else {
|
||||
blocktitle.hide();
|
||||
}
|
||||
|
||||
// update navigation arrows
|
||||
if (!thenext.length && infinigall !== true) {
|
||||
$('.vbox-next').css('display', 'none');
|
||||
nextok = false;
|
||||
} else {
|
||||
$('.vbox-next').css('display', 'block');
|
||||
nextok = true;
|
||||
}
|
||||
|
||||
if (items.index(obj) > 0 || infinigall === true) {
|
||||
$('.vbox-prev').css('display', 'block');
|
||||
prevok = true;
|
||||
} else {
|
||||
$('.vbox-prev').css('display', 'none');
|
||||
prevok = false;
|
||||
}
|
||||
// activate swipe
|
||||
if (prevok === true || nextok === true) {
|
||||
content.on(TouchMouseEvent.DOWN, onDownEvent);
|
||||
content.on(TouchMouseEvent.MOVE, onMoveEvent);
|
||||
content.on(TouchMouseEvent.UP, onUpEvent);
|
||||
}
|
||||
}
|
||||
|
||||
/* -------- gallery navigation -------- */
|
||||
function navigateGall(destination) {
|
||||
|
||||
if (destination.length < 1) {
|
||||
return false;
|
||||
}
|
||||
if (keyNavigationDisabled) {
|
||||
return false;
|
||||
}
|
||||
keyNavigationDisabled = true;
|
||||
|
||||
overlayColor = destination.data('overlay') || destination.data('overlaycolor');
|
||||
|
||||
framewidth = destination.data('framewidth');
|
||||
frameheight = destination.data('frameheight');
|
||||
border = destination.data('border');
|
||||
bgcolor = destination.data('bgcolor');
|
||||
dest = destination.data('href') || destination.attr('href');
|
||||
|
||||
autoplay = destination.data('autoplay');
|
||||
|
||||
title = (destination.data('titleattr') && destination.attr(destination.data('titleattr'))) || '';
|
||||
|
||||
// swipe out item
|
||||
if (destination === theprev) {
|
||||
content.addClass('vbox-animated').addClass('swipe-right');
|
||||
}
|
||||
if (destination === thenext) {
|
||||
content.addClass('vbox-animated').addClass('swipe-left');
|
||||
}
|
||||
|
||||
$preloader.show();
|
||||
|
||||
content.animate({
|
||||
opacity : 0,
|
||||
}, 500, function(){
|
||||
|
||||
overlay.css('background',overlayColor);
|
||||
|
||||
content
|
||||
.removeClass('vbox-animated')
|
||||
.removeClass('swipe-left')
|
||||
.removeClass('swipe-right')
|
||||
.css({'margin-left': 0,'margin-right': 0});
|
||||
|
||||
if (destination.data('vbtype') == 'iframe') {
|
||||
loadIframe();
|
||||
} else if (destination.data('vbtype') == 'inline') {
|
||||
loadInline();
|
||||
} else if (destination.data('vbtype') == 'ajax') {
|
||||
loadAjax();
|
||||
} else if (destination.data('vbtype') == 'video') {
|
||||
loadVid(autoplay);
|
||||
} else {
|
||||
content.html('<img src="'+dest+'">');
|
||||
preloadFirst();
|
||||
}
|
||||
obj = destination;
|
||||
checknav();
|
||||
keyNavigationDisabled = false;
|
||||
option.cb_after_nav(obj, gallIndex, thenext, theprev);
|
||||
});
|
||||
}
|
||||
|
||||
/* -------- KEYBOARD HANDLER -------- */
|
||||
function keyboardHandler(e) {
|
||||
if (e.keyCode === 27) { // esc
|
||||
closeVbox();
|
||||
}
|
||||
|
||||
if (e.keyCode == 37 && prevok === true) { // left
|
||||
navigateGall(theprev);
|
||||
}
|
||||
|
||||
if (e.keyCode == 39 && nextok === true) { // right
|
||||
navigateGall(thenext);
|
||||
}
|
||||
}
|
||||
|
||||
/* -------- CLOSE VBOX -------- */
|
||||
function closeVbox(){
|
||||
|
||||
var cb_pre_close = option.cb_pre_close(obj, gallIndex, thenext, theprev);
|
||||
|
||||
if (cb_pre_close === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$('body').off('keydown', keyboardHandler).removeClass('vbox-open');
|
||||
|
||||
obj.focus();
|
||||
|
||||
overlay.animate({opacity:0}, 500, function(){
|
||||
overlay.remove();
|
||||
keyNavigationDisabled = false;
|
||||
option.cb_post_close();
|
||||
});
|
||||
}
|
||||
|
||||
/* -------- CLOSE CLICK -------- */
|
||||
var closeclickclass = '.vbox-overlay';
|
||||
if(!option.overlayClose){
|
||||
closeclickclass = '.vbox-close'; // close only on X
|
||||
}
|
||||
|
||||
$('body').on('click touchstart', closeclickclass, function(e){
|
||||
if ($(e.target).is('.vbox-overlay') ||
|
||||
$(e.target).is('.vbox-content') ||
|
||||
$(e.target).is('.vbox-close') ||
|
||||
$(e.target).is('.vbox-preloader') ||
|
||||
$(e.target).is('.vbox-container')
|
||||
) {
|
||||
closeVbox();
|
||||
}
|
||||
});
|
||||
|
||||
startX = 0;
|
||||
endX = 0;
|
||||
|
||||
diff = 0;
|
||||
threshold = 50;
|
||||
startouch = false;
|
||||
|
||||
function onDownEvent(e){
|
||||
content.addClass('vbox-animated');
|
||||
startY = endY = e.pageY;
|
||||
startX = endX = e.pageX;
|
||||
startouch = true;
|
||||
}
|
||||
|
||||
function onMoveEvent(e){
|
||||
if (startouch === true) {
|
||||
endX = e.pageX;
|
||||
endY = e.pageY;
|
||||
|
||||
diffX = endX - startX;
|
||||
diffY = endY - startY;
|
||||
|
||||
var absdiffX = Math.abs(diffX);
|
||||
var absdiffY = Math.abs(diffY);
|
||||
|
||||
if ((absdiffX > absdiffY) && (absdiffX <= 100)) {
|
||||
e.preventDefault();
|
||||
content.css('margin-left', diffX);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function onUpEvent(e){
|
||||
if (startouch === true) {
|
||||
startouch = false;
|
||||
var subject = obj;
|
||||
var change = false;
|
||||
diff = endX - startX;
|
||||
|
||||
if (diff < 0 && nextok === true) {
|
||||
subject = thenext;
|
||||
change = true;
|
||||
}
|
||||
if (diff > 0 && prevok === true) {
|
||||
subject = theprev;
|
||||
change = true;
|
||||
}
|
||||
|
||||
if (Math.abs(diff) >= threshold && change === true) {
|
||||
navigateGall(subject);
|
||||
} else {
|
||||
content.css({'margin-left': 0,'margin-right': 0});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* == GLOBAL DECLERATIONS == */
|
||||
var TouchMouseEvent = {
|
||||
DOWN: "touchmousedown",
|
||||
UP: "touchmouseup",
|
||||
MOVE: "touchmousemove"
|
||||
};
|
||||
|
||||
/* == EVENT LISTENERS == */
|
||||
var onMouseEvent = function(event) {
|
||||
var type;
|
||||
switch (event.type) {
|
||||
case "mousedown": type = TouchMouseEvent.DOWN; break;
|
||||
case "mouseup": type = TouchMouseEvent.UP; break;
|
||||
case "mouseout": type = TouchMouseEvent.UP; break;
|
||||
case "mousemove": type = TouchMouseEvent.MOVE; break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
var touchMouseEvent = normalizeEvent(type, event, event.pageX, event.pageY);
|
||||
$(event.target).trigger(touchMouseEvent);
|
||||
};
|
||||
|
||||
var onTouchEvent = function(event) {
|
||||
var type;
|
||||
switch (event.type) {
|
||||
case "touchstart": type = TouchMouseEvent.DOWN; break;
|
||||
case "touchend": type = TouchMouseEvent.UP; break;
|
||||
case "touchmove": type = TouchMouseEvent.MOVE; break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
var touch = event.originalEvent.touches[0];
|
||||
var touchMouseEvent;
|
||||
|
||||
if (type == TouchMouseEvent.UP) {
|
||||
touchMouseEvent = normalizeEvent(type, event, null, null);
|
||||
} else {
|
||||
touchMouseEvent = normalizeEvent(type, event, touch.pageX, touch.pageY);
|
||||
}
|
||||
$(event.target).trigger(touchMouseEvent);
|
||||
};
|
||||
|
||||
/* == NORMALIZE == */
|
||||
var normalizeEvent = function(type, original, x, y) {
|
||||
return $.Event(type, {
|
||||
pageX: x,
|
||||
pageY: y,
|
||||
originalEvent: original
|
||||
});
|
||||
};
|
||||
|
||||
/* == LISTEN TO ORIGINAL EVENT == */
|
||||
if ("ontouchstart" in window) {
|
||||
$(document).on("touchstart", onTouchEvent);
|
||||
$(document).on("touchmove", onTouchEvent);
|
||||
$(document).on("touchend", onTouchEvent);
|
||||
} else {
|
||||
$(document).on("mousedown", onMouseEvent);
|
||||
$(document).on("mouseup", onMouseEvent);
|
||||
$(document).on("mouseout", onMouseEvent);
|
||||
$(document).on("mousemove", onMouseEvent);
|
||||
}
|
||||
|
||||
/* -------- LOAD AJAX -------- */
|
||||
function loadAjax(){
|
||||
$.ajax({
|
||||
url: dest,
|
||||
cache: false
|
||||
}).done(function( msg ) {
|
||||
content.html('<div class="vbox-inline">'+ msg +'</div>');
|
||||
preloadFirst();
|
||||
|
||||
}).fail(function() {
|
||||
content.html('<div class="vbox-inline"><p>Error retrieving contents, please retry</div>');
|
||||
updateoverlay();
|
||||
});
|
||||
}
|
||||
|
||||
/* -------- LOAD IFRAME -------- */
|
||||
function loadIframe(){
|
||||
content.html('<iframe class="venoframe" src="'+dest+'"></iframe>');
|
||||
// $('.venoframe').load(function(){ // valid only for iFrames in same domain
|
||||
updateoverlay();
|
||||
// });
|
||||
}
|
||||
|
||||
/* -------- LOAD VIDEOs -------- */
|
||||
function loadVid(autoplay){
|
||||
|
||||
var player;
|
||||
var videoObj = parseVideo(dest);
|
||||
|
||||
// set rel=0 to hide related videos at the end of YT + optional autoplay
|
||||
var stringAutoplay = autoplay ? "?rel=0&autoplay=1" : "?rel=0";
|
||||
var queryvars = stringAutoplay + getUrlParameter(dest);
|
||||
|
||||
if (videoObj.type == 'vimeo') {
|
||||
player = 'https://player.vimeo.com/video/';
|
||||
} else if (videoObj.type == 'youtube') {
|
||||
player = 'https://www.youtube.com/embed/';
|
||||
}
|
||||
content.html('<iframe class="venoframe vbvid" webkitallowfullscreen mozallowfullscreen allowfullscreen allow="autoplay" frameborder="0" src="'+player+videoObj.id+queryvars+'"></iframe>');
|
||||
updateoverlay();
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse Youtube or Vimeo videos and get host & ID
|
||||
*/
|
||||
function parseVideo (url) {
|
||||
url.match(/(http:|https:|)\/\/(player.|www.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com))\/(video\/|embed\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/);
|
||||
var type;
|
||||
if (RegExp.$3.indexOf('youtu') > -1) {
|
||||
type = 'youtube';
|
||||
} else if (RegExp.$3.indexOf('vimeo') > -1) {
|
||||
type = 'vimeo';
|
||||
}
|
||||
return {
|
||||
type: type,
|
||||
id: RegExp.$6
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* get additional video url parameters
|
||||
*/
|
||||
function getUrlParameter(name) {
|
||||
var result = '';
|
||||
var sPageURL = decodeURIComponent(name);
|
||||
var firstsplit = sPageURL.split('?');
|
||||
|
||||
if (firstsplit[1] !== undefined) {
|
||||
var sURLVariables = firstsplit[1].split('&');
|
||||
var sParameterName;
|
||||
var i;
|
||||
for (i = 0; i < sURLVariables.length; i++) {
|
||||
sParameterName = sURLVariables[i].split('=');
|
||||
result = result + '&'+ sParameterName[0]+'='+ sParameterName[1];
|
||||
}
|
||||
}
|
||||
return encodeURI(result);
|
||||
}
|
||||
|
||||
/* -------- LOAD INLINE -------- */
|
||||
function loadInline(){
|
||||
content.html('<div class="vbox-inline">'+$(dest).html()+'</div>');
|
||||
updateoverlay();
|
||||
}
|
||||
|
||||
/* -------- PRELOAD IMAGE -------- */
|
||||
function preloadFirst(){
|
||||
images = content.find('img');
|
||||
|
||||
if (images.length) {
|
||||
images.each(function(){
|
||||
$(this).one('load', function() {
|
||||
updateoverlay();
|
||||
});
|
||||
});
|
||||
} else {
|
||||
updateoverlay();
|
||||
}
|
||||
}
|
||||
|
||||
/* -------- FADE-IN THE NEW CONTENT -------- */
|
||||
function updateoverlay(){
|
||||
|
||||
blocktitle.html(title);
|
||||
content.find(">:first-child").addClass('vbox-figlio').css({
|
||||
'width': framewidth,
|
||||
'height': frameheight,
|
||||
'padding': border,
|
||||
'background': bgcolor
|
||||
});
|
||||
|
||||
$('img.vbox-figlio').on('dragstart', function(event) {
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
updateOL();
|
||||
|
||||
content.animate({
|
||||
'opacity': '1'
|
||||
},'slow', function(){
|
||||
$preloader.hide();
|
||||
});
|
||||
|
||||
option.cb_content_loaded(obj, gallIndex, thenext, theprev);
|
||||
}
|
||||
|
||||
/* -------- CENTER FRAME -------- */
|
||||
function updateOL(){
|
||||
|
||||
var sonH = content.outerHeight();
|
||||
var finH = $(window).height();
|
||||
|
||||
if (sonH + 60 < finH) {
|
||||
margine = (finH - sonH)/2;
|
||||
} else {
|
||||
margine = '30px';
|
||||
}
|
||||
content.css('margin-top', margine);
|
||||
content.css('margin-bottom', margine);
|
||||
option.cb_post_resize();
|
||||
}
|
||||
|
||||
$(window).resize(function(){
|
||||
if($('.vbox-content').length){
|
||||
setTimeout(updateOL(), 800);
|
||||
}
|
||||
});
|
||||
}); // each
|
||||
} // venobox
|
||||
}); // extend
|
||||
})(jQuery);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user