diff --git a/js/ma5-menu.js b/js/ma5-menu.js index f3a1f00..88c81f0 100755 --- a/js/ma5-menu.js +++ b/js/ma5-menu.js @@ -91,6 +91,11 @@ if (isIE()) { } // detect scrollbar function detectElementScrollbar() { + if ($('body').outerHeight() > $(window).height()) { + $('html').addClass('has-body-scrollbar'); + } else { + $('html').addClass('hasnt-body-scrollbar'); + } $('[data-detect-scrollbar]').each(function() { if($(this).get(0).scrollHeight > $(this).get(0).clientHeight) { $(this).addClass('has-scrollbar').removeClass('hasnt-scrollbar'); @@ -116,6 +121,7 @@ $(document).ready(function () { } }); }); + $(window).on('resize', function () { detectElementScrollbar(); }); @@ -126,3 +132,4 @@ $(window).on('load', function () { + diff --git a/js/ma5-menu.min.js b/js/ma5-menu.min.js index 3626cb9..e802b48 100755 --- a/js/ma5-menu.min.js +++ b/js/ma5-menu.min.js @@ -1 +1 @@ -function ma5menu(e){!0===e.swipe&&$("html").addClass("ma5menu--swipe");var a="left";"right"==e.position&&(a=e.position),$("html").addClass("ma5menu--"+a),$("body").append('
'),$(".ma5menu__header").clone().appendTo(".ma5menu__head"),$(".ma5menu").find("ul").clone().addClass("ma5menu__panel").appendTo(".ma5menu__container").find("ul").remove(),$(".ma5menu__panel").each(function(){$(this).wrap("
"),$(this).parent().addClass($(this).attr("class")).attr("data-ma5order",$(this).attr("data-ma5order")),$(this).removeAttr("class").removeAttr("data-ma5order")}),$(".ma5menu__panel").append(''),$(".ma5menu__tools").appendTo(".ma5menu__footer").addClass("js-append"),$(".ma5menu__toggle").on("click touch",function(){$("html").addClass("ma5menu--ready").toggleClass("ma5menu--active").addClass("ma5menu--overflow"),$(".ma5menu__panel").removeClass("ma5menu__panel--active-leave ma5menu__panel--parent-leave ma5menu__panel--active-enter ma5menu__panel--parent-enter"),setTimeout(function(){ma5menuCheckScroll()},500)}),$(".ma5menu__btn--enter").on("click touch",function(){$(".ma5menu__panel").removeClass("ma5menu__panel--active"),$(".ma5menu__panel li").removeClass("ma5menu__li--current");var e=$(this).parent().attr("data-ma5order").replace("li","ul"),a=$(this).parent().attr("data-ma5order").replace("li","ul").split("-");a.splice(-1,1);a=a.join("-"),$(".ma5menu__panel").removeClass("ma5menu__panel--active-leave ma5menu__panel--parent-leave ma5menu__panel--active-enter ma5menu__panel--parent-enter"),$('[data-ma5order="'+a+'"]').addClass("ma5menu__panel--parent-enter"),$('[data-ma5order="'+e+'"]').addClass("ma5menu__panel--active-enter ma5menu__panel--active"),setTimeout(function(){ma5menuCheckScroll()},500)}),$(".ma5menu__leave").on("click touch",function(){$(".ma5menu__panel").removeClass("ma5menu__panel--active");var e=$(this).parent().attr("data-ma5order").replace("li","ul").split("-");e.splice(-1,1);e.splice(-1,1),e=e.join("-");var a=$(this).parent().attr("data-ma5order").replace("li","ul").split("-");a.splice(-1,1);a=a.join("-"),$(".ma5menu__panel").removeClass("ma5menu__panel--active-leave ma5menu__panel--parent-leave ma5menu__panel--active-enter ma5menu__panel--parent-enter"),$('[data-ma5order="'+e+'"]').addClass("ma5menu__panel--parent-leave ma5menu__panel--active"),$('[data-ma5order="'+a+'"]').addClass("ma5menu__panel--active-leave"),setTimeout(function(){ma5menuCheckScroll()},500)});var n=!1;$(window).on("resize",function(){n=!0}),setInterval(function(){n&&(n=!1,ma5menuCheckScroll())},300)}function ma5menuCheckScroll(){$("html").removeClass("ma5menu--overflow"),$(".ma5menu__container").removeClass("ma5menu__container--scroll"),$(".ma5menu__panel.ma5menu__panel--active").detectElementScrollbar()?($(".ma5menu__container").addClass("ma5menu__container--scroll"),$(".ma5menu__panel.ma5menu__panel--active").bind("scroll",function(){$(this).scrollTop()+$(this).innerHeight()+1>=$(this)[0].scrollHeight?$(".ma5menu__container").removeClass("ma5menu__container--scroll"):$(".ma5menu__container").addClass("ma5menu__container--scroll")})):$(".ma5menu__panel.ma5menu__panel--active").unbind("scroll")}function isIE(){return"Microsoft Internet Explorer"==navigator.appName||"Netscape"==navigator.appName&&null!==new RegExp("Trident/.*rv:([0-9]{1,}[.0-9]{0,})").exec(navigator.userAgent)}function detectElementScrollbar(){$("[data-detect-scrollbar]").each(function(){$(this).get(0).scrollHeight>$(this).get(0).clientHeight?$(this).addClass("has-scrollbar").removeClass("hasnt-scrollbar"):$(this).addClass("hasnt-scrollbar").removeClass("has-scrollbar")})}var htmlRootForDetectBrowser=document.getElementsByTagName("html")[0];isIE()&&(htmlRootForDetectBrowser.className+=" ie"),$.fn.detectElementScrollbar=function(){return $(this).get(0).scrollHeight>$(this).get(0).clientHeight?($(this).addClass("has-scrollbar").removeClass("hasnt-scrollbar"),!0):($(this).addClass("hasnt-scrollbar").removeClass("has-scrollbar"),!1)},$(document).ready(function(){detectElementScrollbar(),$("html").on("click touch",function(e){$(".ma5menu__container").is(e.target)||0!==$(".ma5menu__container").has(e.target).length||$(".ma5menu__toggle").is(e.target)||0!==$(".ma5menu__toggle").has(e.target).length||$("html").removeClass("ma5menu--active")})}),$(window).on("resize",function(){detectElementScrollbar()}),$(window).on("load",function(){detectElementScrollbar()}); \ No newline at end of file +function ma5menu(e){!0===e.swipe&&$("html").addClass("ma5menu--swipe");var a="left";"right"==e.position&&(a=e.position),$("html").addClass("ma5menu--"+a),$("body").append('
'),$(".ma5menu__header").clone().appendTo(".ma5menu__head"),$(".ma5menu").find("ul").clone().addClass("ma5menu__panel").appendTo(".ma5menu__container").find("ul").remove(),$(".ma5menu__panel").each(function(){$(this).wrap("
"),$(this).parent().addClass($(this).attr("class")).attr("data-ma5order",$(this).attr("data-ma5order")),$(this).removeAttr("class").removeAttr("data-ma5order")}),$(".ma5menu__panel").append(''),$(".ma5menu__tools").appendTo(".ma5menu__footer").addClass("js-append"),$(".ma5menu__toggle").on("click touch",function(){$("html").addClass("ma5menu--ready").toggleClass("ma5menu--active").addClass("ma5menu--overflow"),$(".ma5menu__panel").removeClass("ma5menu__panel--active-leave ma5menu__panel--parent-leave ma5menu__panel--active-enter ma5menu__panel--parent-enter"),setTimeout(function(){ma5menuCheckScroll()},500)}),$(".ma5menu__btn--enter").on("click touch",function(){$(".ma5menu__panel").removeClass("ma5menu__panel--active"),$(".ma5menu__panel li").removeClass("ma5menu__li--current");var e=$(this).parent().attr("data-ma5order").replace("li","ul"),a=$(this).parent().attr("data-ma5order").replace("li","ul").split("-");a.splice(-1,1);a=a.join("-"),$(".ma5menu__panel").removeClass("ma5menu__panel--active-leave ma5menu__panel--parent-leave ma5menu__panel--active-enter ma5menu__panel--parent-enter"),$('[data-ma5order="'+a+'"]').addClass("ma5menu__panel--parent-enter"),$('[data-ma5order="'+e+'"]').addClass("ma5menu__panel--active-enter ma5menu__panel--active"),setTimeout(function(){ma5menuCheckScroll()},500)}),$(".ma5menu__leave").on("click touch",function(){$(".ma5menu__panel").removeClass("ma5menu__panel--active");var e=$(this).parent().attr("data-ma5order").replace("li","ul").split("-");e.splice(-1,1);e.splice(-1,1),e=e.join("-");var a=$(this).parent().attr("data-ma5order").replace("li","ul").split("-");a.splice(-1,1);a=a.join("-"),$(".ma5menu__panel").removeClass("ma5menu__panel--active-leave ma5menu__panel--parent-leave ma5menu__panel--active-enter ma5menu__panel--parent-enter"),$('[data-ma5order="'+e+'"]').addClass("ma5menu__panel--parent-leave ma5menu__panel--active"),$('[data-ma5order="'+a+'"]').addClass("ma5menu__panel--active-leave"),setTimeout(function(){ma5menuCheckScroll()},500)});var n=!1;$(window).on("resize",function(){n=!0}),setInterval(function(){n&&(n=!1,ma5menuCheckScroll())},300)}function ma5menuCheckScroll(){$("html").removeClass("ma5menu--overflow"),$(".ma5menu__container").removeClass("ma5menu__container--scroll"),$(".ma5menu__panel.ma5menu__panel--active").detectElementScrollbar()?($(".ma5menu__container").addClass("ma5menu__container--scroll"),$(".ma5menu__panel.ma5menu__panel--active").bind("scroll",function(){$(this).scrollTop()+$(this).innerHeight()+1>=$(this)[0].scrollHeight?$(".ma5menu__container").removeClass("ma5menu__container--scroll"):$(".ma5menu__container").addClass("ma5menu__container--scroll")})):$(".ma5menu__panel.ma5menu__panel--active").unbind("scroll")}function isIE(){return"Microsoft Internet Explorer"==navigator.appName||"Netscape"==navigator.appName&&null!==new RegExp("Trident/.*rv:([0-9]{1,}[.0-9]{0,})").exec(navigator.userAgent)}function detectElementScrollbar(){$("body").outerHeight()>$(window).height()?$("html").addClass("has-body-scrollbar"):$("html").addClass("hasnt-body-scrollbar"),$("[data-detect-scrollbar]").each(function(){$(this).get(0).scrollHeight>$(this).get(0).clientHeight?$(this).addClass("has-scrollbar").removeClass("hasnt-scrollbar"):$(this).addClass("hasnt-scrollbar").removeClass("has-scrollbar")})}var htmlRootForDetectBrowser=document.getElementsByTagName("html")[0];isIE()&&(htmlRootForDetectBrowser.className+=" ie"),$.fn.detectElementScrollbar=function(){return $(this).get(0).scrollHeight>$(this).get(0).clientHeight?($(this).addClass("has-scrollbar").removeClass("hasnt-scrollbar"),!0):($(this).addClass("hasnt-scrollbar").removeClass("has-scrollbar"),!1)},$(document).ready(function(){detectElementScrollbar(),$("html").on("click touch",function(e){$(".ma5menu__container").is(e.target)||0!==$(".ma5menu__container").has(e.target).length||$(".ma5menu__toggle").is(e.target)||0!==$(".ma5menu__toggle").has(e.target).length||$("html").removeClass("ma5menu--active")})}),$(window).on("resize",function(){detectElementScrollbar()}),$(window).on("load",function(){detectElementScrollbar()}); \ No newline at end of file