WebisteDLH/wwwroot/js/demos/demo-photography.js

892 lines
21 KiB
JavaScript

/*
Name: Photography
Written by: Okler Themes - (http://www.okler.net)
Theme Version: 9.9.2
*/
// Demo Config
theme.PluginScrollToTop.initialize = function() {};
(function($) {
'use strict';
// Slider Options
var sliderOptions = {
sliderType: 'standard',
sliderLayout: 'fullscreen',
fullScreenOffsetContainer: '#header',
delay: 5000,
disableProgressBar: 'on',
gridwidth: 1170,
gridheight: 500,
lazyType: "none",
shadow: 0,
spinner: "off",
shuffle: "off",
autoHeight: "off",
fullScreenAlignForce: "off",
fullScreenOffset: "",
hideThumbsOnMobile: "off",
hideSliderAtLimit: 0,
hideCaptionAtLimit: 0,
hideAllCaptionAtLilmit: 0,
debugMode: false,
fallbacks: {
simplifyAll: "off",
nextSlideOnWindowFocus: "off",
disableFocusListener: false,
},
navigation: {
keyboardNavigation: "on",
keyboard_direction: "horizontal",
mouseScrollNavigation: "on",
onHoverStop: "off",
touch: {
touchenabled: "on",
swipe_threshold: 75,
swipe_min_touches: 1,
swipe_direction: "horizontal",
drag_block_vertical: false
},
arrows: {
enable: true,
style: "arrows-portfolio-detail-1",
left : {
container:"slider",
h_align:"left",
v_align:"center",
h_offset:0,
v_offset:0,
},
right : {
v_align:"center",
container:"slider",
h_align:"right",
h_offset:0,
v_offset:0
}
}
},
parallax:{
type:"on",
levels:[20,40,60,80,100],
origo:"enterpoint",
speed:400,
bgparallax:"on",
disable_onmobile:"off"
}
}
if( $('.photography-demo-3').get(0) ) {
sliderOptions.fullScreenOffsetContainer = null;
sliderOptions.navigation.arrows.style = 'arrows-side-header-1';
sliderOptions.navigation.arrows.hide_onleave = false;
if( $(window).width() < 992 ) {
sliderOptions.fullScreenOffsetContainer = '#header';
}
}
if( $('.photography-demo-2').get(0) ) {
sliderOptions.fullScreenOffsetContainer = null;
sliderOptions.navigation.arrows.style = 'arrows-transparent-header-photography-1';
sliderOptions.navigation.arrows.hide_onleave = false;
sliderOptions.navigation.arrows.left.h_offset = 20;
sliderOptions.navigation.arrows.right.h_offset = 20;
}
if( $('.rev_about_us').get(0) ) {
sliderOptions.navigation.mouseScrollNavigation = false;
}
// Slider Init
$(window).on('load', function(){
$('#revolutionSlider').revolution(sliderOptions);
});
/*
Custom Portfolio Details Load More
*/
var portfolioDetailLoadMore = {
pages: 0,
currentPage: 0,
$wrapper: $('#portfolioDetailLoadMoreWrapper'),
$btn: $('#portfolioDetailLoadMore'),
$btnWrapper: $('#portfolioDetailLoadMoreBtnWrapper'),
$loader: $('#portfolioDetailLoadMoreLoader'),
build: function() {
var self = this
self.pages = self.$wrapper.data('total-pages');
if(self.pages <= 1) {
self.$btnWrapper.remove();
return;
} else {
// init isotope
self.$wrapper.isotope();
self.$btn.on('click', function() {
self.loadMore();
});
// Lazy Load
if(self.$btn.hasClass('btn-portfolioDetail-lazy-load')) {
theme.fn.intObs( '#portfolioDetailLoadMore', "$('#portfolioDetailLoadMore').trigger('click');", {
rootMargin: '0px 0px 0px 0px'
} );
}
}
},
loadMore: function() {
var self = this;
self.$btn.hide();
self.$loader.show();
// Ajax
$.ajax({
url: 'ajax/demo-photography-portfolio-ajax-on-page-load-more.html',
complete: function(data) {
var $items = $(data.responseText);
setTimeout(function() {
self.$wrapper.append($items)
self.$wrapper.isotope('appended', $items);
self.$wrapper.isotope('layout');
self.currentPage++;
if(self.currentPage < self.pages) {
self.$btn.show().blur();
} else {
self.$btnWrapper.remove();
}
self.$wrapper.on( 'layoutComplete', function( laidOutItems ) {
// Carousel
$(function() {
$('[data-plugin-carousel]:not(.manual), .owl-carousel:not(.manual)').each(function() {
var $this = $(this),
opts;
var pluginOptions = theme.fn.getOptions($this.data('plugin-options'));
if (pluginOptions)
opts = pluginOptions;
$this.themePluginCarousel(opts);
setTimeout(function(){
$this.owlCarousel('refresh');
}, 1);
});
});
});
// Ajax On Page
ajaxOnPagePortfolioDetails.build();
self.$loader.hide();
// Refresh Parallax
$(window).trigger('scroll');
}, 1000);
}
});
}
}
if($('#portfolioDetailLoadMoreWrapper').get(0)) {
portfolioDetailLoadMore.build();
}
/*
Custom Portfolio Infinite Scroll
*/
var portfolioInfiniteScroll = {
pages: 0,
currentPage: 0,
$wrapper: $('.portfolioInfiniteScrollWrapper'),
$btn: $('#portfolioInfiniteScrollLoadMore'),
$btnWrapper: $('#portfolioInfiniteScrollLoadMoreBtnWrapper'),
$loader: $('#portfolioInfiniteScrollLoadMoreLoader'),
build: function() {
var self = this
self.pages = self.$wrapper.data('total-pages');
if(self.pages <= 1) {
self.$btnWrapper.remove();
return;
} else {
// init isotope
self.$wrapper.isotope();
self.$btn.on('click', function() {
self.loadMore();
});
// Lazy Load
if(self.$btn.hasClass('btn-portfolioInfiniteScroll-lazy-load')) {
theme.fn.intObs( '#portfolioInfiniteScrollLoadMore', "$('#portfolioInfiniteScrollLoadMore').trigger('click');", {
rootMargin: '0px 0px 0px 0px'
}, true );
}
}
},
loadMore: function() {
var self = this;
self.$btn.hide();
self.$loader.show();
// Ajax
$.ajax({
url: 'ajax/demo-photography-portfolio-infinite-scroll-load-more.html',
complete: function(data) {
var $items = $(data.responseText);
setTimeout(function() {
self.$wrapper.append($items)
self.$wrapper.isotope('appended', $items);
self.$wrapper.isotope('layout');
self.currentPage++;
if(self.currentPage < self.pages) {
self.$btn.show().blur();
} else {
self.$btnWrapper.remove();
}
self.$wrapper.on( 'layoutComplete', function( laidOutItems ) {
// Add new items to gallery
self.$wrapper.find('.item-appended').each(function(){
var imgsrc = $(this).find('.thumb-info-background').attr('data-src'),
imgThumbsrc = $(this).find('.thumb-info-background').attr('data-thumb-src'),
clone = $('#thumbGalleryDetail .owl-item > div').first().clone(),
cloneThumb = $('#thumbGalleryThumbs .owl-item > div').first().clone();
// Create images
clone.find('img').attr('src',imgsrc);
cloneThumb.find('img').attr('src',imgThumbsrc);
// Add images
$('#thumbGalleryDetail').owlCarousel().trigger('add.owl.carousel', [clone]);
$('#thumbGalleryThumbs').owlCarousel().trigger('add.owl.carousel', [cloneThumb]);
$(this).removeClass('item-appended');
});
// Carousel
$(function() {
$('[data-plugin-carousel]:not(.manual), .owl-carousel:not(.manual)').each(function() {
var $this = $(this),
opts;
var pluginOptions = theme.fn.getOptions($this.data('plugin-options'));
if (pluginOptions)
opts = pluginOptions;
$this.themePluginCarousel(opts);
setTimeout(function(){
$this.owlCarousel('refresh');
}, 1);
});
});
// Lightbox - Clicked Item
$('a[href="#photographyLightbox"]').on('click', function(){
if($('.grid-sizer').get(0)) {
clickedItem = $(this).parent().parent().index() - 1;
} else {
clickedItem = $(this).parent().parent().index();
}
});
// Lightbox
$('.popup-with-move-anim').magnificPopup(portfolioLightboxOptions);
});
self.$loader.hide();
// Refresh Parallax
$(window).trigger('scroll');
}, 1000);
}
});
}
}
if($('.portfolioInfiniteScrollWrapper').get(0)) {
portfolioInfiniteScroll.build();
}
/*
* Ajax on Page
*/
var ajaxOnPagePortfolioDetails = {
pages: [],
$ajaxBox: $('#porfolioDetailsAjaxBox'),
$ajaxBoxContent: $('#porfolioDetailsAjaxBoxContent'),
build: function() {
var self = this;
$('a[data-ajax-on-page]').each(function() {
self.add($(this));
});
$(document).on('mousedown', 'a[data-ajax-on-page]', function (ev) {
if (ev.which == 2) {
ev.preventDefault();
return false;
}
});
},
add: function($el) {
var self = this,
href = $el.attr('data-href');
self.pages.push(href);
$el.on('click', function(e) {
e.preventDefault();
self.show(self.pages.indexOf(href));
});
},
events: function() {
var self = this;
// Slider
sliderOptions.navigation.mouseScrollNavigation = false;
$('#revolutionSlider').revolution(sliderOptions);
// Carousel
if ($.isFunction($.fn['themePluginCarousel'])) {
$(function() {
$('[data-plugin-carousel]:not(.manual), .owl-carousel:not(.manual)').each(function() {
var $this = $(this),
opts;
var pluginOptions = theme.fn.getOptions($this.data('plugin-options'));
if (pluginOptions)
opts = pluginOptions;
$this.themePluginCarousel(opts);
});
});
}
},
show: function(i) {
var self = this;
self.$ajaxBoxContent.empty();
self.$ajaxBox.removeClass('ajax-box-init').addClass('ajax-box-loading');
$('html, body').animate({
scrollTop: self.$ajaxBox.offset().top - 100
}, 300, 'easeOutQuad');
// Ajax
$.ajax({
url: self.pages[i],
complete: function(data) {
setTimeout(function() {
self.$ajaxBoxContent.html(data.responseText);
self.$ajaxBox.removeClass('ajax-box-loading');
self.events();
}, 1000);
}
});
}
}
if($('#porfolioDetailsAjaxBox').get(0)) {
ajaxOnPagePortfolioDetails.build();
}
/*
* Portfolio Grid - Init isotope
*/
$(window).on('load', function() {
var $portfolioGrid = $('#portfolioGrid'),
$ourBlog = $('#ourBlog'),
gridSizer = $portfolioGrid.attr('data-grid-sizer');
// Portfolio Grid
if( $portfolioGrid.get(0) ) {
$portfolioGrid.isotope({
itemSelector: '.isotope-item',
masonry: {
columnWidth: gridSizer,
gutter: 0
}
});
$portfolioGrid.isotope('layout');
}
if( $ourBlog.get(0) ) {
$ourBlog.isotope({
itemSelector: '.isotope-item',
masonry: {
gutter: 0
}
});
$ourBlog.isotope('layout');
}
});
/*
* Horizontal Scroll
*/
var $horizontalScroll = {
$horizontalScrollWrapper : $('#horizontalScrollBox'),
$horizontalScrollContent : $('#horizontalScrollBox .content'),
$horizontalScrollItem : $('#horizontalScrollBox .content .horizontal-scroll-item-wrapper'),
build: function(){
var self = this;
self.setContentWidth();
self.buttonNavigation();
self.disableEnableButtons();
},
setContentWidth: function(){
var self = this,
totalWidth = 0;
$(self.$horizontalScrollItem).each(function(e){
var boxImageWidth = $(this).outerWidth(true);
totalWidth = (totalWidth + boxImageWidth);
});
self.$horizontalScrollContent.width( totalWidth );
},
isElementInView: function (element, fullyInView) {
var pageLeft = $(window).scrollLeft(),
pageRight = pageLeft + $(window).width(),
elementLeft = $(element).offset().left,
elementRight = elementLeft + $(element).width();
if (fullyInView === true) {
return ((pageLeft < elementLeft) && (pageRight > elementRight));
} else {
return ((elementLeft <= pageRight) && (elementRight >= pageLeft));
}
},
buttonNavigation: function() {
var self = this,
nextButton = self.$horizontalScrollWrapper.find('.custom-portfolio-navigation .next'),
prevButton = self.$horizontalScrollWrapper.find('.custom-portfolio-navigation .prev'),
totalItems = self.$horizontalScrollItem.length - 1,
screen = 0,
distance = 0,
index = 0,
flag = false,
atualItem;
prevButton.on('click', function(){
if( !flag ){
flag = true;
if( index > 0 ) {
index--;
}
atualItem = self.$horizontalScrollItem.eq(index);
// Check if Element in View
var isElementInView = self.isElementInView(atualItem, false);
if( !isElementInView ) {
self.$horizontalScrollItem.each(function(){
var inView = self.isElementInView($(this), false);
if( inView ) {
atualItem = $(this);
return false;
}
});
}
// If Demo 3
if($('.photography-demo-3').get(0)) {
screen = (($(window).width() - 255 ) - atualItem.outerWidth(true)) / 2;
} else {
screen = ($(window).width() - atualItem.outerWidth(true)) / 2;
}
distance = (atualItem.position().left - screen);
$('#horizontalScrollBox').animate({ scrollLeft: distance }, 300, function(){
flag = false;
});
}
});
nextButton.on('click', function(){
if( !flag ){
flag = true;
if( index < totalItems ) {
index++;
}
atualItem = self.$horizontalScrollItem.eq(index);
// Check if Element in View
var isElementInView = self.isElementInView(atualItem, false);
if( !isElementInView ) {
self.$horizontalScrollItem.each(function(){
var inView = self.isElementInView($(this), false);
if( inView ) {
atualItem = $(this);
index = $(this).index();
return false;
}
});
}
// If Demo 3
if($('.photography-demo-3').get(0)) {
screen = (($(window).width() - 255 ) - atualItem.outerWidth(true)) / 2;
} else {
screen = ($(window).width() - atualItem.outerWidth(true)) / 2;
}
distance = (atualItem.position().left - screen);
$('#horizontalScrollBox').animate({ scrollLeft: distance }, 300, function(){
flag = false;
});
}
});
},
disableEnableButtons: function(){
var self = this,
nextButton = self.$horizontalScrollWrapper.find('.custom-portfolio-navigation .next'),
prevButton = self.$horizontalScrollWrapper.find('.custom-portfolio-navigation .prev');
self.$horizontalScrollWrapper.on('scroll', function(){
if( $(this).scrollLeft() == 0 ) {
prevButton.addClass('disable-button');
} else {
prevButton.removeClass('disable-button');
}
if( $(this).scrollLeft() > ((self.$horizontalScrollContent.width() - $(window).width()) - 1) ) {
nextButton.addClass('disable-button');
} else {
nextButton.removeClass('disable-button');
}
});
}
}
if($('#horizontalScrollBox').get(0)) {
$horizontalScroll.build();
$(window).trigger('resize');
var $window = $(window);
// Mousewheel horizontal scroll
$('#horizontalScrollBox').mousewheel(function(event, delta) {
if ($window.width() > 991) {
this.scrollLeft -= (delta * 60);
event.preventDefault();
}
});
// Build $horizontalScroll on resize
$window.on('load', function(){
$(document).ready(function(){
$(window).afterResize(function() {
$horizontalScroll.setContentWidth();
if($('.photography-demo-2').get(0)) {
$(".thumb-info-wrapper img").css('transition','ease all 5s');
$(".thumb-info-wrapper img").on("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend", function(e){
$horizontalScroll.setContentWidth();
});
}
});
if($('.photography-demo-2').get(0)) {
$(window).on('resize', function(){
$(".thumb-info-wrapper img").css('transition','none');
});
}
$(window).trigger('resize');
});
});
}
/*
* Lightbox
*/
var clickedItem,
removeShowThumbsTimeout,
portfolioLightboxOptions = {
type: 'inline',
fixedContentPos: true,
fixedBgPos: true,
overflowY: 'hidden',
closeBtnInside: true,
preloader: false,
midClick: true,
removalDelay: 300,
mainClass: 'photography-portfolio-gallery',
callbacks: {
open: function(){
$('#thumbGalleryDetail').owlCarousel().trigger('refresh.owl.carousel');
$('#thumbGalleryDetail').owlCarousel().trigger('to.owl.carousel', [clickedItem, 0]);
$('#thumbGalleryThumbs').owlCarousel('refresh');
removeShowThumbsTimeout = setTimeout(function(){
$('#thumbGalleryThumbs').removeClass('show-thumbs');
}, 3000);
$(document).on('keydown', function( event ) {
if(event.keyCode == 37) {
$('#thumbGalleryDetail').trigger('prev.owl')
}
if(event.keyCode == 39) {
$('#thumbGalleryDetail').trigger('next.owl')
}
});
},
close: function(){
clearTimeout(removeShowThumbsTimeout);
$('#thumbGalleryThumbs').addClass('show-thumbs');
$(document).off('keydown');
}
}
}
if($('a[href="#photographyLightbox"]').get(0)) {
$('a[href="#photographyLightbox"]').on('click', function(){
if($('.grid-sizer').get(0)) {
clickedItem = $(this).parent().parent().index() - 1;
} else {
clickedItem = $(this).parent().parent().index();
}
});
$('a[href="#photographyLightbox"]').magnificPopup(portfolioLightboxOptions);
}
/*
Thumb Gallery
*/
if( $('#photographyLightbox').get(0) ) {
var $thumbGalleryDetail = $('#thumbGalleryDetail'),
$thumbGalleryThumbs = $('#thumbGalleryThumbs'),
flag = false,
duration = 300;
$thumbGalleryDetail
.owlCarousel({
items: 1,
margin: 10,
nav: true,
dots: false,
loop: false,
navText: [],
rtl: (($('html[dir="rtl"]').get(0)) ? true : false),
onRefreshed: function(e){
setTimeout(function(){
$('.mfp-wrap.photography-portfolio-gallery').css('opacity',1);
}, 300);
}
})
.on('changed.owl.carousel', function(e) {
if (!flag) {
flag = true;
$thumbGalleryThumbs.trigger('to.owl.carousel', [e.item.index-1, duration, true]);
// add class to active thumb
$thumbGalleryThumbs.find('.owl-item').removeClass('active-thumb');
$thumbGalleryThumbs.find('.owl-item:eq('+ e.item.index +')').addClass('active-thumb');
flag = false;
}
});
$thumbGalleryThumbs
.owlCarousel({
margin: 15,
items: 15,
nav: false,
center: false,
dots: false,
pagination: false,
rtl: (($('html[dir="rtl"]').get(0)) ? true : false)
})
.on('click', '.owl-item', function() {
$thumbGalleryDetail.trigger('to.owl.carousel', [$(this).index(), duration, true]);
// add class to active thumb
$thumbGalleryThumbs.find('.owl-item').removeClass('active-thumb');
$(this).addClass('active-thumb');
});
// Set first item with active-thumb
$thumbGalleryThumbs.find('.owl-item:eq(0)').addClass('active-thumb');
}
if( $('#portfolioSliderWithThumbs').get(0) ) {
var $thumbGalleryDetail = $('#thumbGalleryDetail'),
$thumbGalleryThumbs = $('#thumbGalleryThumbs'),
flag = false,
duration = 300;
$thumbGalleryDetail
.owlCarousel({
items: 1,
margin: 10,
nav: true,
dots: false,
loop: false,
navText: [],
rtl: (($('html[dir="rtl"]').get(0)) ? true : false),
onRefreshed: function(e){
setTimeout(function(){
$('.mfp-wrap.photography-portfolio-gallery').css('opacity',1);
}, 300);
}
})
.on('changed.owl.carousel', function(e) {
if (!flag) {
flag = true;
$thumbGalleryThumbs.trigger('to.owl.carousel', [e.item.index-1, duration, true]);
// add class to active thumb
$thumbGalleryThumbs.find('.owl-item').removeClass('active-thumb');
$thumbGalleryThumbs.find('.owl-item:eq('+ e.item.index +')').addClass('active-thumb');
flag = false;
}
});
$thumbGalleryThumbs
.owlCarousel({
margin: 15,
items: 8,
nav: false,
center: false,
dots: false,
pagination: false,
rtl: (($('html[dir="rtl"]').get(0)) ? true : false),
responsive:{
0:{
items:2
},
300:{
items:3
},
767:{
items:6,
},
991:{
items:7,
},
1200:{
items:8,
}
}
})
.on('click', '.owl-item', function() {
$thumbGalleryDetail.trigger('to.owl.carousel', [$(this).index(), duration, true]);
// add class to active thumb
$thumbGalleryThumbs.find('.owl-item').removeClass('active-thumb');
$(this).addClass('active-thumb');
});
// Set first item with active-thumb
$thumbGalleryThumbs.find('.owl-item:eq(0)').addClass('active-thumb');
$(document).on('keydown', function( event ) {
if(event.keyCode == 37) {
$('#thumbGalleryDetail').trigger('prev.owl')
}
if(event.keyCode == 39) {
$('#thumbGalleryDetail').trigger('next.owl')
}
});
}
}).apply(this, [jQuery]);