publiccode.si/public/js/front.js

383 lines
9.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/* global $this: true */
/* eslint no-unused-vars: ["error", { "varsIgnorePattern": "animationsSlider" }] */
if ($.cookie('themeCSSpath')) {
$('link#theme-stylesheet').attr('href', $.cookie('themeCSSpath'))
}
if ($.cookie('themeLayout')) {
$('body').addClass($.cookie('themeLayout'))
}
$(function () {
sliderHomepage()
sliders()
fullScreenContainer()
productDetailGallery(4000)
menuSliding()
productDetailSizes()
utils()
animations()
counters()
demo()
contactForm()
})
// Ajax contact
function contactForm () {
var form = $('.contact-form')
form.submit(function () {
$this = $(this)
$.post($(this).attr('action'),
$this.serialize(),
function () {
$this[0].reset() // clear form
$('#contact-message')
.html('<div class="alert alert-success" role="alert"><button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>Thank you for getting in touch. We will get back to you soon!</div>')
.fadeIn()
}
, 'json')
return false
})
}
/* for demo purpose only - can be deleted */
function demo () {
if ($.cookie('themeCSSpath')) {
$('link#theme-stylesheet').attr('href', $.cookie('themeCSSpath'))
}
$('#colour').change(function () {
if ($(this).val() !== '') {
var themeCSSpath = 'css/style.' + $(this).val() + '.css'
$('link#theme-stylesheet').attr('href', themeCSSpath)
$.cookie('themeCSSpath', themeCSSpath, {expires: 365, path: '/'})
}
return false
})
$('#layout').change(function () {
if ($(this).val() !== '') {
var themeLayout = $(this).val()
$('body').removeClass('wide')
$('body').removeClass('boxed')
$('body').addClass(themeLayout)
$.cookie('themeLayout', themeLayout, {expires: 365, path: '/'})
}
return false
})
}
/* slider homepage */
function sliderHomepage () {
if ($('#slider').length) {
// var owl = $('#slider')
$('#slider').owlCarousel({
autoPlay: 3000,
items: 4,
itemsDesktopSmall: [900, 3],
itemsTablet: [600, 3],
itemsMobile: [500, 2]
})
}
}
/* sliders */
function sliders () {
if ($('.owl-carousel').length) {
$('.customers').owlCarousel({
items: 6,
itemsDesktopSmall: [990, 4],
itemsTablet: [768, 2],
itemsMobile: [480, 1]
})
$('.testimonials').owlCarousel({
items: 4,
itemsDesktopSmall: [990, 3],
itemsTablet: [768, 2],
itemsMobile: [480, 1]
})
$('.project').owlCarousel({
navigation: true, // Show next and prev buttons
navigationText: ['<i class="fa fa-angle-left"></i>', '<i class="fa fa-angle-right"></i>'],
slideSpeed: 300,
paginationSpeed: 400,
autoPlay: true,
stopOnHover: true,
singleItem: true,
afterInit: '',
lazyLoad: true
})
$('.homepage').owlCarousel({
navigation: false, // Show next and prev buttons
navigationText: ['<i class="fa fa-angle-left"></i>', '<i class="fa fa-angle-right"></i>'],
slideSpeed: 2000,
paginationSpeed: 1000,
autoPlay: true,
stopOnHover: true,
singleItem: true,
lazyLoad: false,
addClassActive: true,
afterInit: function () {
// animationsSlider()
},
afterMove: function () {
// animationsSlider()
}
})
}
}
/* menu sliding */
function menuSliding () {
$('.dropdown').on('show.bs.dropdown', function () {
if ($(window).width() > 750) {
$(this).find('.dropdown-menu').first().stop(true, true).slideDown()
} else {
$(this).find('.dropdown-menu').first().stop(true, true).show()
}
})
$('.dropdown').on('hide.bs.dropdown', function () {
if ($(window).width() > 750) {
$(this).find('.dropdown-menu').first().stop(true, true).slideUp()
} else {
$(this).find('.dropdown-menu').first().stop(true, true).hide()
}
})
}
/* animations */
function animations () {
var delayTime = 0
$('[data-animate]').css({opacity: '0'})
$('[data-animate]').waypoint(function () {
delayTime += 150
$(this).delay(delayTime).queue(function (next) {
$(this).toggleClass('animated')
$(this).toggleClass($(this).data('animate'))
delayTime = 0
next()
// $(this).removeClass('animated')
// $(this).toggleClass($(this).data('animate'))
})
}, {
offset: '90%',
triggerOnce: true
})
$('[data-animate-hover]').hover(function () {
$(this).css({opacity: 1})
$(this).addClass('animated')
$(this).removeClass($(this).data('animate'))
$(this).addClass($(this).data('animate-hover'))
}, function () {
$(this).removeClass('animated')
$(this).removeClass($(this).data('animate-hover'))
})
}
function animationsSlider () {
var delayTimeSlider = 400
$('.owl-item:not(.active) [data-animate-always]').each(function () {
$(this).removeClass('animated')
$(this).removeClass($(this).data('animate-always'))
$(this).stop(true, true, true).css({opacity: 0})
})
$('.owl-item.active [data-animate-always]').each(function () {
delayTimeSlider += 500
$(this).delay(delayTimeSlider).queue(function () {
$(this).addClass('animated')
$(this).addClass($(this).data('animate-always'))
console.log($(this).data('animate-always'))
})
})
}
/* counters */
function counters () {
$('.counter').counterUp({
delay: 10,
time: 1000
})
}
/* picture zoom */
function pictureZoom () {
$('.product .image, .post .image, .photostream div').each(function () {
var imgHeight = $(this).find('img').height()
$(this).height(imgHeight)
})
}
/* full screen intro */
function fullScreenContainer () {
var screenWidth = $(window).width() + 'px'
var screenHeight = '500px'
if ($(window).height() > 500) {
screenHeight = $(window).height() + 'px'
}
$('#intro, #intro .item').css({
width: screenWidth,
height: screenHeight
})
}
function utils () {
/* tooltips */
$('[data-toggle="tooltip"]').tooltip()
/* click on the box activates the radio */
$('#checkout').on('click', '.box.shipping-method, .box.payment-method', function () {
var radio = $(this).find(':radio')
radio.prop('checked', true)
})
/* click on the box activates the link in it */
$('.box.clickable').on('click', function () {
window.location = $(this).find('a').attr('href')
})
/* external links in new window */
$('.external').on('click', function (e) {
e.preventDefault()
window.open($(this).attr('href'))
})
/* animated scrolling */
$('.scroll-to, .scroll-to-top').click(function (event) {
var fullUrl = this.href
var parts = fullUrl.split('#')
if (parts.length > 1) {
scrollTo(fullUrl)
event.preventDefault()
}
})
function scrollTo (fullUrl) {
var parts = fullUrl.split('#')
var trgt = parts[1]
var targetOffset = $('#' + trgt).offset()
var targetTop = targetOffset.top - 100
if (targetTop < 0) {
targetTop = 0
}
$('html, body').animate({
scrollTop: targetTop
}, 1000)
}
}
/* product detail gallery */
function productDetailGallery (confDetailSwitch) {
$('.thumb:first').addClass('active')
var timer = setInterval(autoSwitch, confDetailSwitch)
$('.thumb').click(function (e) {
switchImage($(this))
clearInterval(timer)
timer = setInterval(autoSwitch, confDetailSwitch)
e.preventDefault()
})
$('#mainImage').hover(function () {
clearInterval(timer)
}, function () {
timer = setInterval(autoSwitch, confDetailSwitch)
})
function autoSwitch () {
var nextThumb = $('.thumb.active').closest('div').next('div').find('.thumb')
if (nextThumb.length === 0) {
nextThumb = $('.thumb:first')
}
switchImage(nextThumb)
}
function switchImage (thumb) {
$('.thumb').removeClass('active')
var bigUrl = thumb.attr('href')
thumb.addClass('active')
$('#mainImage img').attr('src', bigUrl)
}
}
/* product detail sizes */
function productDetailSizes () {
$('.sizes a').click(function (e) {
e.preventDefault()
$('.sizes a').removeClass('active')
$('.size-input').prop('checked', false)
$(this).addClass('active')
$(this).next('input').prop('checked', true)
})
}
$.fn.alignElementsSameHeight = function () {
$('.same-height-row').each(function () {
var maxHeight = 0
var children = $(this).find('.same-height')
children.height('auto')
if ($(window).width() > 768) {
children.each(function () {
if ($(this).innerHeight() > maxHeight) {
maxHeight = $(this).innerHeight()
}
})
children.innerHeight(maxHeight)
}
maxHeight = 0
children = $(this).find('.same-height-always')
children.height('auto')
children.each(function () {
if ($(this).height() > maxHeight) {
maxHeight = $(this).innerHeight()
}
})
children.innerHeight(maxHeight)
})
}
var windowWidth
$(window).load(function () {
windowWidth = $(window).width()
$(this).alignElementsSameHeight()
pictureZoom()
})
$(window).resize(function () {
var newWindowWidth = $(window).width()
if (windowWidth !== newWindowWidth) {
setTimeout(function () {
$(this).alignElementsSameHeight()
fullScreenContainer()
pictureZoom()
}, 205)
windowWidth = newWindowWidth
}
})