Files
nhgooi.nl/public/js/functions.js
Jorit Tijsen ecfbb47f1e Disable banner by env file
Favicon aanpassen
Logo aanpassen + subtitel toevoegd
Tab ‘Nieuws’ uit het menu gehaalt
Menu item ‘Gemist’ in menu plaaten
App uit menu balk
Adverteren toevoegen aan blauwe balk
Wat draait in sidebar NH Gooi Radio Live
Footer tekst
NAW toevoegen aan contact pagina
Op contactpagina: Chef redactie
Delen bericht
2024-05-06 15:08:19 +02:00

318 lines
8.8 KiB
JavaScript
Vendored

function calculateSize(targetId, tries) {
if (tries == undefined) {
tries = 0;
}
setTimeout(function(){
if (($('#' + targetId).children(":first").height() == 0 || $('#' + targetId).children(":first").width() == 0) && tries < 4) {
calculateSize(targetId, tries + 1);
} else {
$('#' + targetId).height($('#' + targetId).children(":first").height());
$('#' + targetId).width($('#' + targetId).children(":first").width());
}
}, 500);
$('#' + targetId).css({backgroundColor: 'transparent'});
}
$(document).ready(function(){
$('#changePreferences, .cc_b_cp').click(function(){
$('#title_targeting').parent('li').hide();
$('#content_targeting').hide();
});
});
(function ($) {
/**
* @param {object} _options
*/
$.fn.loadMoreNews = function (_options) {
var isLoading = false;
var page = 1;
var options = {
loadingElementId: '#loading',
container: '',
url: document.location.pathname,
nextPage: 2
};
$.extend(options, _options);
var $isLoading = $(options.loadingElementId, this);
$isLoading.hide();
this.click(function (e) {
e.preventDefault();
if (!isLoading) {
// Set flag and update UI
isLoading = 1;
$isLoading.show();
var $button = $(this).attr("disabled", "disabled");
var $container = $(options.container)
// Fire request for the next page
$.ajax({url: options.url + (options.url.indexOf('?') >= 0 ? '&' : '?') + 'pagina=' + options.nextPage})
.always(function () {
// Whether success or failure, update the UI again
isLoading = 0;
$isLoading.hide();
$button.removeAttr("disabled");
})
.done(function (data) {
if (!data) {
// When no data was returned, disable the button permanently
page = -1;
$button.attr("disabled", "disabled").text("Geen nieuws meer.");
return;
}
$container.each(function () {
var id = this.toString();
$(id).append($('<div>'+data+'</div>').find(id).length ? $('<div>'+data+'</div>').find(id).children() : $(data));
});
++options.nextPage;
});
}
});
};
}(jQuery));
$(function () {
$('[data-loadmorenews]').each(function () {
$(this).loadMoreNews($(this).data('loadmorenews'));
});
});
(function ($) {
/**
* @param {object} _options
*/
$.fn.menu = function (_options) {
var options = {
menuSubmenuClass: 'has_submenu'
};
$.extend(options, _options);
var $menus = $(this).children('.' + options.menuSubmenuClass);
var $container = $(this);
$menus.on( "mouseenter", function () {
var $menuItem = $(this);
$('.menu-submenu > ul.submenu').slideUp(400, function(){$(this).closest('.menu-submenu').remove()});
$('.hover', $container).removeClass('hover');
$menuItem.addClass('hover');
var submenu = $('<div style="width: ' + $menuItem.outerWidth() + 'px"><a href="' + $menuItem.find('a').attr('href') + '" style="width: ' + $menuItem.outerWidth() + 'px"></a></div>').append($menuItem.children('ul.submenu').clone());
var pos = $menuItem.offset();
submenu.addClass('menu-submenu').css({top: pos.top, left: pos.left});
submenu.on( "mouseleave", function() {
$('.menu-submenu > ul.submenu').slideUp(400, function(){$(this).closest('.menu-submenu').remove()});
$menuItem.removeClass('hover');
} );
$('body').append(submenu);
submenu.children('ul.submenu').slideDown();
submenu.find('ul.submenu').subMenu({});
openPlayerInNewScreen();
});
};
/**
* @param {object} _options
*/
$.fn.subMenu = function (_options) {
var options = {
menuSubmenuClass: 'has_submenu'
};
$.extend(options, _options);
var $container = $(this);
$container.find('li.' + options.menuSubmenuClass + ' > a').click(function(e) {
e.preventDefault();
var $li = $(this).closest('li');
$li.children('ul.submenu').slideToggle();
$li.toggleClass('opened');
});
};
}(jQuery));
$(function () {
$('.menu').menu({});
$('.mobile-menu').subMenu({});
$('.mobile_menu_button a').click(function() {
$('.mobile_menu_container').show();
});
$('.mobile_close_menu_button a').click(function() {
$('.mobile_menu_container').hide();
});
$('.mobile_menu_container').click(function(e){
var $target = $(e.target);
if(!$target.closest('#mobile_menu_nav').length &&
$('.mobile_menu_container').is(":visible")) {
$('.mobile_menu_container').hide();
}
});
});
$(function () {
$(".prettyPhoto[rel^='prettyPhoto']").prettyPhoto({
show_title: false,
slideshow: 3000,
overlay_gallery: true,
social_tools: ''
});
});
$(function () {
$('.scroll_top').click(function (e) {
e.preventDefault();
$("html, body").stop().animate({scrollTop: 0}, 500, 'swing');
});
});
(function ($) {
/**
* @param {object} _options
*/
$.fn.share = function (_options) {
var options = {
type: '',
types: {
facebook: {
url: 'https://www.facebook.com/sharer/sharer.php?u=',
textOption: false
},
twitter_x: {
url: 'https://twitter.com/share?url=',
textOption: 'text='
},
},
excerptClass: 'excerpt'
};
$.extend(options, _options);
this.click(function (e) {
e.preventDefault();
var type = options.types[options.type];
if (options.type == 'native' && navigator.share != undefined) {
var text = $('.' + options.excerptClass).text().trim();
if (text.length + location.href.length > 278) {
text = text.substring(0, 278 - (location.href.length + 3)) + '...';
}
var data = {
url: encodeURI(location.href),
text: text,
title: $('.page_title').text().trim()
};
navigator.share(data)
}
else if (type !== undefined) {
var extra = '';
if (type.textOption) {
var text = $('.' + options.excerptClass).text().trim();
if (text.length + location.href.length > 278) {
text = text.substring(0, 278 - (location.href.length + 3)) + '...';
}
extra = '&' + type.textOption + encodeURI(text);
}
window.open(type.url + encodeURI(location.href) + extra, "pop", "width=600, height=400, scrollbars=no");
} else {
console.error(options.type + ' is unknown');
}
});
};
}(jQuery));
$(function () {
$('[data-share]').each(function () {
$(this).share({type: $(this).data('share')});
});
});
(function ($) {
/**
* @param {object} _options
*/
$.fn.snapTo = function (_options) {
var options = {
elementClass: 'post'
};
$.extend(options, _options);
var $container = $(this);
var $elements = $container.find('.' + options.elementClass + ':visible');
var stopSnapTo = false;
var snapTimeout = null;
var snapHandler = function() {
if (!stopSnapTo) {
stopSnapTo = true;
var y = $container.scrollLeft();
$elements.each(function () {
var offset = $(this).offset();
if (offset.left > -(window.screen.width / 2) && offset.left < window.screen.width / 2) {
$container.animate({
scrollLeft: Math.round(y + offset.left) + 'px'
}, 300);
return false;
}
});
if (snapTimeout) {
clearTimeout(snapTimeout);
}
snapTimeout = setTimeout(function () {
stopSnapTo = false;
}, 500);
}
}
var snapToHandlerTimer = null;
var scrollHandler = function() {
if (snapToHandlerTimer) {
clearTimeout(snapToHandlerTimer);
}
snapToHandlerTimer = setTimeout(snapHandler, 300);
};
$container.on( "scroll", scrollHandler);
};
}(jQuery));
$(function () {
$('[data-snapto]').each(function () {
$(this).snapTo($(this).data('snapto'));
});
});
(function ($) {
/**
* @param {object} _options
*/
$.fn.tabs = function (_options) {
var options = {
tabClass: 'box_header',
activeClass: 'active',
contentClass: 'tab_content'
};
$.extend(options, _options);
var $tabs = $(this).find('.' + options.tabClass);
var $container = $(this);
$tabs.click(function (e) {
e.preventDefault();
$tabs.removeClass(options.activeClass);
$container.find('.' + options.contentClass).removeClass(options.activeClass);
$container.find('#' + $(this).data('tab-content-id')).addClass(options.activeClass);
$(this).addClass(options.activeClass);
});
};
}(jQuery));
$(function () {
$('[data-tabs]').each(function () {
$(this).tabs($(this).data('tabs') ?? {});
});
});