add_action( 'wp_footer',function(){
/* Exclude the 4 Swiper test pages, so that if modifications are required, it's easy to edit the code on these pages */
if ( !is_page(889) && !is_page(859) && !is_page(361) && !is_page(627) ){
/* Function that transforms into Swipers the Post element (ideally used with a custom loop), and the Basic Gallery element.
For the post element, give it either the class 'swiperposts', for the 3 posts, horizontal swiper, or the class 'swiperverticalposts', for the vertical , single post swiper. Important: set to view only 1 post per column, for desktop, tablet and mobile, for both of these swipers.
For the gallery element, give it either the class 'swiperimages', for the 3 images, horizontal swiper, or the class 'swipervertical', for the vertical , single image swiper. Important: set to view only 1 image per column, for desktop, tablet and mobile, for both of these swipers.
*/
?>
<style>
.swiperimages .swiper-containere{
width: 100%;
overflow: hidden;
}
.swiperimages .swiper-wrapper{
height: 300px;
width: 100%;
transition-timing-function: cubic-bezier(0.78, 0.05, 0.21, 0.94);
}
.swiperimages .gallery-item img{
height: 340px;
width: auto;
object-fit: cover;
}
.swiperimages .swiper-button-forward, .swiperimages .swiper-button-backward{
position: absolute;
left: 10px;
bottom: -60px;
z-index: 3;
color: #000;
font-size: 34px;
padding: 4px;
cursor: pointer;
font-family: Helvetica Neue, Helvetica;
display: flex;
height: 54px;
}
.swiperimages .swiper-button-forward svg, .swiperimages .swiper-button-backward svg{
width:44px;
padding:10px;
fill:#000;
}
.swiperimages .swiper-button-forward{
left: unset;
right: 10px;
}
.swiperimages .progress {
position: absolute;
height:2px;
width:calc(100% - 140px);
left: 70px;
bottom: -34px;
z-index: 3;
}
.swiperimages .progress::before, .swiperimages .progress::after {
content:'';
background:#000;
left: 0;
top: 0;
width: 100%;
position: absolute;
height: 2px;
}
.swiperimages .progress::before{
opacity: 0.4;
}
.swiperimages .progress::after{
opacity: 1;
transform: scaleX(0);
}
.swiperimages .progress.show-progress::after{
transform: scaleX(1);
transition: transform 6s linear;
}
.swiperposts .swiper-containere{
width: 100%;
overflow: hidden;
padding-bottom: 40px;
}
.swiperposts .swiper-wrapper{
height: 300px;
width: 100%;
transition-timing-function: cubic-bezier(0.78, 0.05, 0.21, 0.94);
}
.swiperposts .swiper-button-forward, .swiperposts .swiper-button-backward{
position: absolute;
left: 10px;
bottom: -60px;
z-index: 3;
color: #000;
font-size: 34px;
padding: 4px;
cursor: pointer;
font-family: Helvetica Neue, Helvetica;
display: flex;
height: 54px;
}
.swiperposts .swiper-button-forward svg, .swiperposts .swiper-button-backward svg{
width:44px;
padding:10px;
fill:#000;
}
.swiperposts .swiper-button-forward{
left: unset;
right: 10px;
}
.swiperposts .progress {
position: absolute;
height:2px;
width:calc(100% - 140px);
left: 70px;
bottom: -34px;
z-index: 3;
}
.swiperposts .progress::before, .swiperposts .progress::after {
content:'';
background:#000;
left: 0;
top: 0;
width: 100%;
position: absolute;
height: 2px;
}
.swiperposts .progress::before{
opacity: 0.4;
}
.swiperposts .progress::after{
opacity: 1;
transform: scaleX(0);
}
.swiperposts .progress.show-progress::after{
transform: scaleX(1);
transition: transform 6s linear;
}
.swipervertical .swiper {
width: 100%;
color: #fff;
}
.swipervertical .swiper-container{
width: 100%;
overflow: hidden;
}
.swipervertical .swiper-wrapper{
overflow: hidden;
height: 470px;
}
.swipervertical .swiper-slide {
transition-timing-function: cubic-bezier(0.78, 0.05, 0.21, 0.94);
}
.swipervertical .swiper-slide img {
display: block;
width: 100%;
height: 510px;
object-fit: cover;
transform: translateY(-40px);
transition: transform 6.9s linear;
}
/* Adjust height of single vertical image slider by adding this in Advanced > custom CSS
selector.swipervertical .swiper-wrapper{
height: 470px;
}
selector.swipervertical .swiper-slide img {
height: 510px; (needs to be 40px + the value entered just above)
}
*/
.swipervertical .swiper-slide.swiper-slide-active img, .swipervertical .swiper-slide.swiper-slide-duplicate-active img {
transform: translateY(0);
}
.swipervertical .swiper-button-forward, .swipervertical .swiper-button-backward{
position: absolute;
right: 50px;
top:50%;
transform:translateY(-100%);
z-index: 3;
color: #fff;
font-size: 34px;
padding: 4px;
cursor: pointer;
font-family: Helvetica Neue, Helvetica;
}
.swipervertical .swiper-button-forward{
top:50%;
transform:translateY(10%);
}
.swipervertical .swiper-button-forward svg, .swipervertical .swiper-button-backward svg{
width:44px;
padding:13px;
fill:#fff;
}
.swipervertical .progress{
width:3px;
height: 60%;
position: absolute;
right: 30px;
top:20%;
z-index: 4;
}
.swipervertical .progress::before, .swipervertical .progress::after{
background-color: #fff;
content:'';
left: 0;
top: 0;
position: absolute;
height: 100%;
width:3px;
}
.swipervertical .progress::before{
opacity: 0.4;
}
.swipervertical .progress::after{
opacity: 1;
transform-origin: 0 0;
transform: scaleY(0);
}
.swipervertical .progress.show-progress::after{
transition: transform 6s linear;
transform: scaleY(1);
}
/* Swiper vertical posts CSS Below */
/* To change the height of a specific swiper vertical post, add this under Advanced > Custom CSS for the post element
selector.swiperverticalposts .swiper-wrapper{
height: 510px;
}
selector.swiperverticalposts .swiper-slide {
height: 510px;
}
selector.swiperverticalposts .swiper-slide .elementor-background-overlay {
height: calc(510px + 40px);
}
*/
.swiperverticalposts .swiper-containere{
width: 100%;
overflow: hidden;
}
.swiperverticalposts .swiper-wrapper{
height: 90vh;
width: 100%;
overflow: hidden;
}
.swiperverticalposts .swiper-slide {
width: 100%;
transition-timing-function: cubic-bezier(0.78, 0.05, 0.21, 0.94);
transition-property: transform;
height: 90vh;
}
.swiperverticalposts .swiper-slide .elementor-background-overlay {
height: calc(90vh + 40px);
transform: translateY(-40px);
transition: transform 6.9s linear;
}
.swiperverticalposts .swiper-slide.swiper-slide-active .elementor-background-overlay, .swiperverticalposts .swiper-slide.swiper-slide-duplicate-active .elementor-background-overlay {
transform: translateY(0);
}
.swiperverticalposts .swiper-button-forward, .swiperverticalposts .swiper-button-backward{
position: absolute;
right: 50px;
top:50%;
transform:translateY(-100%);
z-index: 3;
color: #fff;
font-size: 34px;
padding: 4px;
cursor: pointer;
font-family: Helvetica Neue, Helvetica;
}
.swiperverticalposts .swiper-button-forward{
top:50%;
transform:translateY(10%);
}
.swiperverticalposts .swiper-button-forward svg, .swiperverticalposts .swiper-button-backward svg{
width:44px;
padding:13px;
fill:#fff;
}
.swiperverticalposts .progress{
width:3px;
height: 60%;
position: absolute;
right: 30px;
top:20%;
z-index: 4;
}
.swiperverticalposts .progress::before, .swiperverticalposts .progress::after{
background-color: #fff;
content:'';
left: 0;
top: 0;
position: absolute;
height: 100%;
width:3px;
}
.swiperverticalposts .progress::before{
opacity: 0.4;
}
.swiperverticalposts .progress::after{
opacity: 1;
transform-origin: 0 0;
transform: scaleY(0);
}
.swiperverticalposts .progress.show-progress::after{
transition: transform 6s linear;
transform: scaleY(1);
}
span.swiper-notification {
display: none;
}
</style>
<script src="/wp-content/uploads/swiper-bundle.min.js"></script>
<script>
(function(){
let parents = document.querySelectorAll('.swiperimages .gallery');
parents.forEach((parent, i, arr) => {
let children = parent.querySelectorAll('.gallery-item');
let wrapper = document.createElement('div');
wrapper.className = 'swiper-wrapper';
children.forEach((childe) => {
wrapper.appendChild(childe);
childe.classList.add('swiper-slide');
});
let container = document.createElement('div');
container.className = 'swiper-containere';
let leftArrow = document.createElement('div');
leftArrow.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 69.28 55.65"><path d="M26.82,54.64a3.44,3.44,0,0,0,4.87-4.87L13.2,31.28H65.83a3.45,3.45,0,0,0,3.45-3.45,3.45,3.45,0,0,0-3.45-3.45H13.2L31.69,5.89A3.45,3.45,0,1,0,26.82,1L0,27.83Z"/></svg>`;
leftArrow.className = 'swiper-button-backward';
container.append(leftArrow);
let rightArrow = document.createElement('div');
rightArrow.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 69.28 55.65"><path d="M42.46,1a3.45,3.45,0,0,0-4.87,4.88L56.08,24.38H3.45a3.45,3.45,0,1,0,0,6.9H56.08L37.59,49.77a3.44,3.44,0,0,0,4.87,4.87L69.28,27.83Z"/></svg>`;
rightArrow.className = 'swiper-button-forward';
container.append(rightArrow);
let progress4 = document.createElement('div');
progress4.className = 'progress';
container.append(progress4);
container.prepend(wrapper);
parent.prepend(container);
var swiper = new Swipere(container, {
slidesPerView: 1,
spaceBetween: 20,
speed: 930,
loop: true,
navigation: {
nextEl: rightArrow,
prevEl: leftArrow,
},
breakpoints: {
768: {
slidesPerView: 2,
},
1024: {
slidesPerView: 3,
},
},
autoplay: {
delay: 6000,
disableOnInteraction: false,
},
on: {
init: function() {
progress4.classList.add('show-progress');
},
beforeTransitionStart: function() {
progress4.classList.remove('show-progress');
},
slideChangeTransitionEnd: function() {
progress4.classList.add('show-progress');
},
},
});
});
})();
(function(){
let parents = document.querySelectorAll('.swiperposts .ecs-posts');
parents.forEach((parent, i, arr) => {
let children = parent.querySelectorAll('article');
let wrapper = document.createElement('div');
wrapper.className = 'swiper-wrapper';
children.forEach((childe) => {
wrapper.appendChild(childe);
childe.classList.add('swiper-slide');
});
let container = document.createElement('div');
container.className = 'swiper-containere';
let leftArrow = document.createElement('div');
leftArrow.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 69.28 55.65"><path d="M26.82,54.64a3.44,3.44,0,0,0,4.87-4.87L13.2,31.28H65.83a3.45,3.45,0,0,0,3.45-3.45,3.45,3.45,0,0,0-3.45-3.45H13.2L31.69,5.89A3.45,3.45,0,1,0,26.82,1L0,27.83Z"/></svg>`;
leftArrow.className = 'swiper-button-backward';
container.append(leftArrow);
let rightArrow = document.createElement('div');
rightArrow.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 69.28 55.65"><path d="M42.46,1a3.45,3.45,0,0,0-4.87,4.88L56.08,24.38H3.45a3.45,3.45,0,1,0,0,6.9H56.08L37.59,49.77a3.44,3.44,0,0,0,4.87,4.87L69.28,27.83Z"/></svg>`;
rightArrow.className = 'swiper-button-forward';
container.append(rightArrow);
let progress4 = document.createElement('div');
progress4.className = 'progress';
container.append(progress4);
container.prepend(wrapper);
parent.prepend(container);
var swiper = new Swipere(container, {
slidesPerView: 1,
spaceBetween: 20,
speed: 930,
loop: true,
navigation: {
nextEl: rightArrow,
prevEl: leftArrow,
},
breakpoints: {
768: {
slidesPerView: 2,
},
1024: {
slidesPerView: 3,
},
},
autoplay: {
delay: 6000,
disableOnInteraction: false,
},
on: {
init: function() {
progress4.classList.add('show-progress');
},
beforeTransitionStart: function() {
progress4.classList.remove('show-progress');
},
slideChangeTransitionEnd: function() {
progress4.classList.add('show-progress');
},
},
});
});
})();
(function(){
document.addEventListener('DOMContentLoaded', function() {
if (jQuery('#gallery-1')) {
jQuery('#gallery-1').attr('id', '');
}
});
let parents = document.querySelectorAll('.swipervertical .gallery');
parents.forEach((parent, i, arr) => {
let children = parent.querySelectorAll('.gallery-item');
let wrapper = document.createElement('div');
wrapper.className = 'swiper-wrapper';
children.forEach((childe) => {
wrapper.appendChild(childe);
childe.classList.add('swiper-slide');
});
let container = document.createElement('div');
container.className = 'swiper-container';
let upArrow = document.createElement('div');
upArrow.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 55.65 69.28"><path d="M1,26.82a3.45,3.45,0,1,0,4.88,4.87L24.38,13.2V65.83a3.45,3.45,0,1,0,6.9,0V13.2L49.77,31.69a3.45,3.45,0,1,0,4.88-4.87L27.83,0Z"/></svg>`;
upArrow.className = 'swiper-button-backward';
container.append(upArrow);
let downArrow = document.createElement('div');
downArrow.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 55.65 69.28"><path d="M54.64,42.46a3.44,3.44,0,0,0-4.87-4.87L31.28,56.08V3.45a3.45,3.45,0,1,0-6.9,0V56.08L5.89,37.59A3.45,3.45,0,0,0,1,42.46L27.83,69.28Z"/></svg>`;
downArrow.className = 'swiper-button-forward';
container.append(downArrow);
let progress4 = document.createElement('div');
progress4.className = 'progress';
container.append(progress4);
container.prepend(wrapper);
parent.prepend(container);
var swiper4 = new Swipere(container, {
effect: "creative",
speed: 930,
loop: true,
navigation: {
nextEl: downArrow,
prevEl: upArrow,
},
autoplay: {
delay: 6000,
disableOnInteraction: false,
},
creativeEffect: {
perspective: false,
prev: {
translate: [0, "20%", -1],
},
next: {
translate: [0, "-100%", 0],
},
},
on: {
init: function() {
progress4.classList.add('show-progress');
},
beforeTransitionStart: function() {
progress4.classList.remove('show-progress');
},
slideChangeTransitionEnd: function() {
progress4.classList.add('show-progress');
},
},
});
});
})();
(function(){
let parents = document.querySelectorAll('.swiperverticalposts .ecs-posts');
parents.forEach((parent, i, arr) => {
let children = parent.querySelectorAll('article');
let wrapper = document.createElement('div');
wrapper.className = 'swiper-wrapper';
children.forEach((childe) => {
wrapper.appendChild(childe);
childe.classList.add('swiper-slide');
});
let container = document.createElement('div');
container.className = 'swiper-containere';
let upArrow = document.createElement('div');
upArrow.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 55.65 69.28"><path d="M1,26.82a3.45,3.45,0,1,0,4.88,4.87L24.38,13.2V65.83a3.45,3.45,0,1,0,6.9,0V13.2L49.77,31.69a3.45,3.45,0,1,0,4.88-4.87L27.83,0Z"/></svg>`;
upArrow.className = 'swiper-button-backward';
container.append(upArrow);
let downArrow = document.createElement('div');
downArrow.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 55.65 69.28"><path d="M54.64,42.46a3.44,3.44,0,0,0-4.87-4.87L31.28,56.08V3.45a3.45,3.45,0,1,0-6.9,0V56.08L5.89,37.59A3.45,3.45,0,0,0,1,42.46L27.83,69.28Z"/></svg>`;
downArrow.className = 'swiper-button-forward';
container.append(downArrow);
let progress4 = document.createElement('div');
progress4.className = 'progress';
container.append(progress4);
container.prepend(wrapper);
parent.prepend(container);
var swiper = new Swipere(container, {
effect: "creative",
speed: 930,
loop: true,
navigation: {
nextEl: downArrow,
prevEl: upArrow,
},
autoplay: {
delay: 6000,
disableOnInteraction: false,
},
creativeEffect: {
perspective: false,
prev: {
translate: [0, "100%", -1],
},
next: {
translate: [0, "-100%", 0],
},
},
on: {
init: function() {
progress4.classList.add('show-progress');
},
beforeTransitionStart: function() {
progress4.classList.remove('show-progress');
},
slideChangeTransitionEnd: function() {
progress4.classList.add('show-progress');
},
},
});
});
})();
</script>
<?php
}
} );