Files
DefectingCat.github.io/js/main.js
DefectingCat 8c7085f18f
2020-11-02 02:17:54 +00:00

1 line
1.9 KiB
JavaScript

function listenScroll(o){const n=new Debouncer(o);window.addEventListener("scroll",n,!1),n.handleEvent()}function scrollToElement(o,n){var a=$(o).offset();$("body,html").animate({scrollTop:a.top+(n||0),easing:"swing"})}function navbarScrollEvent(){var o=$("#navbar"),n=$("#navbar .dropdown-menu");o.offset().top>0&&(o.removeClass("navbar-dark"),n.removeClass("navbar-dark")),listenScroll((function(){o[o.offset().top>50?"addClass":"removeClass"]("top-nav-collapse"),n[o.offset().top>50?"addClass":"removeClass"]("dropdown-collapse"),o.offset().top>0?(o.removeClass("navbar-dark"),n.removeClass("navbar-dark")):(o.addClass("navbar-dark"),n.removeClass("navbar-dark"))})),$("#navbar-toggler-btn").on("click",(function(){$(".animated-icon").toggleClass("open"),$("#navbar").toggleClass("navbar-col-show")}))}function parallaxEvent(){var o=$('#background[parallax="true"]');o.length>0&&listenScroll((function(){var n=$(window).scrollTop()/5,a=96+parseInt($("#board").css("margin-top"),0);n>a&&(n=a),o.css({transform:"translate3d(0,"+n+"px,0)","-webkit-transform":"translate3d(0,"+n+"px,0)","-ms-transform":"translate3d(0,"+n+"px,0)","-o-transform":"translate3d(0,"+n+"px,0)"}),$("#toc")&&$("#toc-ctn").css({"padding-top":n+"px"})}))}function scrollDownArrowEvent(){$(".scroll-down-bar").on("click",(function(){scrollToElement("#board",-$("#navbar").height())}))}function scrollTopArrowEvent(){var o=$("#scroll-top-button");if(o){var n=!1,a=!1,t=function(){var t=document.getElementById("board").getClientRects()[0].right,r=document.body.offsetWidth-t;n=r>=50,o.css({bottom:n&&a?"20px":"-60px",right:r-64+"px"})};t(),$(window).resize(t);var r=$("#board").offset().top;listenScroll((function(){var t=document.body.scrollTop+document.documentElement.scrollTop;a=t>=r,o.css({bottom:n&&a?"20px":"-60px"})})),o.on("click",(function(){$("body,html").animate({scrollTop:0,easing:"swing"})}))}}$(document).ready((function(){navbarScrollEvent(),parallaxEvent(),scrollDownArrowEvent(),scrollTopArrowEvent()}));