Home page and news page are finished
This commit is contained in:
134
public/js/functions.js
vendored
Normal file
134
public/js/functions.js
vendored
Normal file
@@ -0,0 +1,134 @@
|
||||
(function ($) {
|
||||
/**
|
||||
* @param {object} _options
|
||||
*/
|
||||
$.fn.loadMoreNews = function (_options) {
|
||||
var nextPage = 2;
|
||||
var isLoading = false;
|
||||
var page = 1;
|
||||
var options = {
|
||||
loadingElementId: '#loading',
|
||||
container: '',
|
||||
url: document.location.pathname
|
||||
};
|
||||
|
||||
$.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=' + 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));
|
||||
});
|
||||
++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 li.has_submenu').click(function(){
|
||||
$(this).find('ul.submenu').slideToggle();
|
||||
$(this).toggleClass('opened');
|
||||
});
|
||||
openPlayerInNewScreen();
|
||||
});
|
||||
};
|
||||
|
||||
}(jQuery));
|
||||
|
||||
$(function () {
|
||||
$('.menu, .mobile-menu').menu({});
|
||||
});
|
||||
|
||||
(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') ?? {});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user