forked from LiveCarta/LiveCartaWP
171 lines
6.2 KiB
JavaScript
171 lines
6.2 KiB
JavaScript
window.addEventListener('DOMContentLoaded', function(){
|
|
|
|
// home page scripts start
|
|
function startTopBlockAnimations(){
|
|
const lines = [
|
|
'customized learning experiences.',
|
|
'online publishing.',
|
|
'customized teaching experiences.'
|
|
];
|
|
let currentTextNum = 0;
|
|
const element = document.getElementById('animatedText');
|
|
|
|
function clearCurrent(){
|
|
element.innerText = element.innerText.slice(0, -1);
|
|
if (element.innerText.length > 0 ) {
|
|
setTimeout(function(){
|
|
clearCurrent();
|
|
}, 30);
|
|
} else {
|
|
currentTextNum++;
|
|
if (currentTextNum > lines.length - 1) {
|
|
currentTextNum = 0;
|
|
}
|
|
setTimeout(function(){
|
|
addNext();
|
|
}, 1000);
|
|
}
|
|
}
|
|
|
|
function addNext(){
|
|
if (!element) return;
|
|
element.innerText = lines[currentTextNum].substr(0, element.innerText.length + 1);
|
|
if (element.innerText.length === lines[currentTextNum].length ) {
|
|
setTimeout(function(){
|
|
clearCurrent();
|
|
}, 1000);
|
|
} else {
|
|
setTimeout(function(){
|
|
addNext();
|
|
}, 30);
|
|
}
|
|
}
|
|
|
|
setTimeout(function(){
|
|
addNext();
|
|
}, 1000);
|
|
}
|
|
|
|
if (this.document.querySelector('.promo-top')) {
|
|
startTopBlockAnimations();
|
|
}
|
|
// home page scripts end
|
|
|
|
// catalog
|
|
|
|
if (document.getElementById('catalogSearchBtn')) {
|
|
const catalogSearchBtn = document.getElementById('catalogSearchBtn');
|
|
const catalogSearchInput = document.getElementById('catalogSearchInput');
|
|
const catalogSearchClear = document.getElementById('catalogSearchClear');
|
|
|
|
catalogSearchBtn.addEventListener('click', function(){
|
|
let searchText = catalogSearchInput.value;
|
|
top.location = 'https://app.livecarta.com/catalog?tab=books-tab&search=' + searchText;
|
|
})
|
|
|
|
catalogSearchClear.addEventListener('click', function(){
|
|
catalogSearchInput.value = '';
|
|
})
|
|
|
|
catalogSearchInput.addEventListener('keyup', function(e){
|
|
if (e.keyCode === 13) {
|
|
let searchText = catalogSearchInput.value;
|
|
top.location = 'https://app.livecarta.com/catalog?tab=books-tab&search=' + searchText;
|
|
}
|
|
})
|
|
}
|
|
|
|
// sliders
|
|
|
|
if (document.querySelector('.catalog-slider')) {
|
|
const catalogSlider = new Splide( '.catalog-slider', {
|
|
type: 'loop',
|
|
perPage: 5,
|
|
perMove: 1,
|
|
pagination: false,
|
|
gap: 10,
|
|
drag: 'free',
|
|
breakpoints: {
|
|
740: { perPage: 2 },
|
|
1060: { perPage: 3 },
|
|
1280: { perPage: 4 }
|
|
}
|
|
} ).mount();
|
|
}
|
|
|
|
if (document.querySelector('.pc-slider .splide')) {
|
|
const reviewsSlider = new Splide('.pc-slider .splide', {
|
|
type: 'loop',
|
|
perPage: 3,
|
|
perMove: 1,
|
|
rewind: true,
|
|
pagination: false,
|
|
gap: 10,
|
|
breakpoints: {
|
|
1000: { perPage: 2 },
|
|
768: { perPage: 1, gap: 0 },
|
|
}
|
|
}).mount();
|
|
}
|
|
|
|
// scary animations
|
|
|
|
document.addEventListener('click', (event) => {
|
|
if (event.target.closest('.set-icon') || event.classList.contains('set-icon')) {
|
|
event.preventDefault();
|
|
const elem = event.target.closest('.set-icon') || event.classList.contains('set-icon');
|
|
if (elem.classList.contains('selected')) return;
|
|
const states = {
|
|
remix: { remix: 'selected', custom: 'rt', bundle: 'rb', copylink: 'lb', publish: 'lt' },
|
|
custom: { remix: 'lt', custom: 'selected', bundle: 'rt', copylink: 'rb', publish: 'lb' },
|
|
bundle: { remix: 'lb', custom: 'lt', bundle: 'selected', copylink: 'rt', publish: 'rb' },
|
|
copylink: { remix: 'rb', custom: 'lb', bundle: 'lt', copylink: 'selected', publish: 'rt' },
|
|
publish: { remix: 'rt', custom: 'rb', bundle: 'lb', copylink: 'lt', publish: 'selected' }
|
|
}
|
|
const state = states[elem.dataset.icon];
|
|
const icons = document.querySelectorAll('.scary-icon');
|
|
icons.forEach(icon => {
|
|
const iconType = icon.dataset.icon;
|
|
icon.className = 'scary-icon' + ' ' + state[iconType];
|
|
})
|
|
|
|
const hoverBlocks = document.querySelectorAll('.hover-block');
|
|
hoverBlocks.forEach(block => {
|
|
block.classList.remove('selected');
|
|
})
|
|
elem.classList.add('selected')
|
|
}
|
|
})
|
|
|
|
// blog page
|
|
|
|
document.body.addEventListener('click', function(event){
|
|
var catClass = '';
|
|
if (event.target.closest('.category-select')) {
|
|
event.preventDefault();
|
|
let elem = event.target.closest('.category-select');
|
|
document.querySelector('.category-select.selected').classList.remove('selected');
|
|
elem.classList.add('selected');
|
|
document.querySelector('.bp-list').classList.remove('cat-publishing');
|
|
document.querySelector('.bp-list').classList.remove('cat-teaching');
|
|
document.querySelector('.bp-list').classList.remove('cat-learning');
|
|
document.querySelector('.bp-list').classList.remove('cat-all');
|
|
catClass = elem.dataset.cat;
|
|
document.querySelector('.bp-list').classList.add(catClass);
|
|
return false;
|
|
}
|
|
});
|
|
|
|
// faq search clear
|
|
|
|
let clearBtn = document.querySelector('.faq-search .button.clear');
|
|
if (clearBtn) clearBtn.addEventListener('click', function(event){
|
|
let input = clearBtn.closest('.faq-search').querySelector('input[type="text"]');
|
|
if (input.getAttribute('value')) {
|
|
event.preventDefault();
|
|
input.value = '';
|
|
clearBtn.closest('form').submit();
|
|
return false;
|
|
}
|
|
});
|
|
}); |