????JFIF??x?x????'
| Server IP : 79.136.114.73 / Your IP : 216.73.217.109 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/www.astacus.se/wp-content/themes/x/framework/js/src/site/inc/ |
Upload File : |
// =============================================================================
// JS/SRC/SITE/INC/X-HEAD-DROPDOWNS.JS
// -----------------------------------------------------------------------------
// Includes all functionality pertaining to dropdown menus for both "desktop"
// and "mobile" navigation.
// =============================================================================
// =============================================================================
// TABLE OF CONTENTS
// -----------------------------------------------------------------------------
// 01. Dropdowns
// =============================================================================
// Dropdowns
// =============================================================================
jQuery(function($) {
//
// Desktop dropdown functionality.
//
var $desktopMenu = $('.desktop .x-nav');
var desktopTargets = 'li.menu-item-has-children';
var mActiveClass = 'x-active';
var mActionData = 'x-action';
var timer = {};
function showDropdowns(element) {
element.addClass(mActiveClass).siblings(desktopTargets).removeClass(mActiveClass);
if ( Modernizr && Modernizr.touchevents ) {
element.siblings(desktopTargets).data(mActionData, 0);
element.find('.' + mActiveClass).removeClass(mActiveClass).data(mActionData, 0);
}
}
function hideDropdowns(element) {
element.find('.' + mActiveClass).removeClass(mActiveClass);
}
function hoverIn(e) {
clearTimeout(timer.id);
var $li = $(e.target).closest('li');
if ( $li.hasClass('menu-item-has-children') ) {
showDropdowns($li);
}
}
function hoverOut(e) {
clearTimeout(timer.id);
var inMenu = $.contains(document.getElementsByClassName('x-nav-wrap desktop')[0], e.toElement);
var ms = ( inMenu ) ? 500 : 1000;
var $ul = $(this).closest('ul');
timer.id = setTimeout(function() { hideDropdowns($ul); }, ms);
}
function touchIn(e) {
var $li = $(e.target).closest('li');
$li.data(mActionData, $li.data(mActionData) + 1);
if ( $li.hasClass('menu-item-has-children') && $li.data(mActionData) === 1 ) {
e.preventDefault();
e.stopPropagation();
showDropdowns($li);
}
}
function touchOut(e) {
$(desktopTargets).data(mActionData, 0);
hideDropdowns($desktopMenu);
}
if ( Modernizr && Modernizr.touchevents ) {
$(desktopTargets).data(mActionData, 0);
$desktopMenu.on('touchstart click', desktopTargets, touchIn);
$desktopMenu.on('touchstart click', function(e) { e.stopPropagation(); });
$('body').on('touchstart click', touchOut);
} else {
$desktopMenu.hoverIntent({
over : hoverIn,
out : hoverOut,
selector : desktopTargets
});
$desktopMenu.on('focusin', desktopTargets, hoverIn);
$desktopMenu.on('focusout', desktopTargets, hoverOut);
}
//
// Mobile dropdown functionality.
//
var $mobileMenu = $('.mobile .x-nav');
var $mobileTargets = $mobileMenu.find('li.menu-item-has-children > a');
var $mobileSubs = $mobileMenu.find('.sub-menu');
$mobileTargets.each(function(i) {
$(this).append('<div class="x-sub-toggle" data-toggle="collapse" data-target=".sub-menu.sm-' + i + '"><span><i class="x-icon-angle-double-down" data-x-icon=""></i></span></div>');
});
$mobileSubs.each(function(i) {
$(this).addClass('sm-' + i + ' collapse');
});
$('.x-sub-toggle').on('click', function(e) {
e.preventDefault();
$(this).toggleClass(mActiveClass).closest('li').toggleClass(mActiveClass);
});
});