jQuery(function ($) { $('.vn-toggle-menu').on('click', function () { $('.vn-main-navigation .vn-menu').slideToggle(); viralMenuFocus($('#vn-site-navigation')); return false; }); $('.vn-menu > ul').superfish({ delay: 500, animation: {opacity: 'show', height: 'show'}, speed: 'fast' }); $('#secondary').theiaStickySidebar({ additionalMarginTop: 20, additionalMarginBottom: 20 }); $(window).scroll(function () { if ($(window).scrollTop() > 300) { $('#vn-back-top').removeClass('vn-hide'); } else { $('#vn-back-top').addClass('vn-hide'); } }); $('#vn-back-top').click(function () { $('html,body').animate({scrollTop: 0}, 800); }); /*---------Popup Search---------*/ $('.vn-header-search span').on('click', function () { $('.ht-search-wrapper').addClass('ht-search-triggered'); setTimeout(function () { $('.ht-search-wrapper .search-field').focus(); }, 300); viralSearchModalFocus($('.ht-search-wrapper')); return false; }); $('.ht-search-close').on('click', function () { $('.ht-search-wrapper').removeClass('ht-search-triggered'); $('.vn-header-search span').focus(); return false; }); if ($('.vn-carousel-block').length > 0) { $('.vn-carousel-block').each(function () { $ele = $(this).find('.vn-carousel-block-wrap'); $slide = $(this).attr('data-count'); $($ele).owlCarousel({ rtl: JSON.parse(viral_news_localize.is_rtl), loop: true, margin: 20, nav: true, dots: false, autoplay: true, navText: ['', ''], responsive: { 0: { items: 1 }, 580: { items: 2 }, 860: { items: parseInt($slide) } } }) }); } var viralMenuFocus = function (elem) { viralKeyboardLoop(elem); elem.on('keyup', function (e) { if (e.keyCode === 27) { elem.find('.vn-menu').hide(); } }); }; var viralSearchModalFocus = function (elem) { viralKeyboardLoop(elem); elem.on('keydown', function (e) { if (e.keyCode == 27 && elem.hasClass('ht-search-triggered')) { elem.removeClass('ht-search-triggered'); $('.vn-header-search a').focus(); } }); }; var viralKeyboardLoop = function (elem) { var tabbable = elem.find('select, input, textarea, button, a').filter(':visible'); var firstTabbable = tabbable.first(); var lastTabbable = tabbable.last(); /*set focus on first input*/ firstTabbable.focus(); /*redirect last tab to first input*/ lastTabbable.on('keydown', function (e) { if ((e.which === 9 && !e.shiftKey)) { e.preventDefault(); firstTabbable.focus(); } }); /*redirect first shift+tab to last input*/ firstTabbable.on('keydown', function (e) { if ((e.which === 9 && e.shiftKey)) { e.preventDefault(); lastTabbable.focus(); } }); } });