1$(function () { 2 /** 3 * æ·»å æç« å¡çhoverææ. 4 */ 5 let articleCardHover = function () { 6 let animateClass = 'animated pulse'; 7 $('article .article').hover(function () { 8 $(this).addClass(animateClass); 9 }, function () { 10 $(this).removeClass(animateClass); 11 }); 12 }; 13 articleCardHover(); 14 15 /*èå忢*/ 16 $('.button-collapse').sideNav(); 17 18 /* ä¿®å¤æç« å¡ç div ç宽度. */ 19 let fixPostCardWidth = function (srcId, targetId) { 20 let srcDiv = $('#' + srcId); 21 if (srcDiv.length === 0) { 22 return; 23 } 24 25 let w = srcDiv.width(); 26 if (w >= 450) { 27 w = w + 21; 28 } else if (w >= 350 && w < 450) { 29 w = w + 18; 30 } else if (w >= 300 && w < 350) { 31 w = w + 16; 32 } else { 33 w = w + 14; 34 } 35 $('#' + targetId).width(w); 36 }; 37 38 /** 39 * ä¿®å¤footeré¨åçä½ç½®ï¼ä½¿å¾å¨å 容æ¯è¾å°æ¶ï¼footerä¹ä¼å¨åºé¨. 40 */ 41 let fixFooterPosition = function () { 42 $('.content').css('min-height', window.innerHeight - 165); 43 }; 44 45 /** 46 * ä¿®å¤æ ·å¼. 47 */ 48 let fixStyles = function () { 49 fixPostCardWidth('navContainer', 'articles'); 50 fixPostCardWidth('artDetail', 'prenext-posts'); 51 fixFooterPosition(); 52 }; 53 fixStyles(); 54 55 /*è°æ´å±å¹å®½åº¦æ¶éæ°è®¾ç½®æç« åç宽度ï¼ä¿®å¤å°é´è·é®é¢*/ 56 $(window).resize(function () { 57 fixStyles(); 58 }); 59 60 /*åå§åç叿µå¸å±*/ 61 $('#articles').masonry({ 62 itemSelector: '.article' 63 }); 64 65 AOS.init({ 66 easing: 'ease-in-out-sine', 67 duration: 700, 68 delay: 100 69 }); 70 71 /*æç« å 容详æ çä¸äºåå§åç¹æ§*/ 72 let articleInit = function () { 73 $('#articleContent a').attr('target', '_blank'); 74 75 $('#articleContent img').each(function () { 76 let imgPath = $(this).attr('src'); 77 $(this).wrap('<div class="img-item" data-src="' + imgPath + '" data-sub-html=".caption"></div>'); 78 // å¾çæ·»å é´å½± 79 $(this).addClass("img-shadow img-margin"); 80 // å¾çæ·»å åå¹ 81 let alt = $(this).attr('alt'); 82 let title = $(this).attr('title'); 83 let captionText = ""; 84 // 妿alt为空ï¼titleæ¥æ¿ 85 if (alt === undefined || alt === "") { 86 if (title !== undefined && title !== "") { 87 captionText = title; 88 } 89 } else { 90 captionText = alt; 91 } 92 // åå¹ä¸ç©ºï¼æ·»å ä¹ 93 if (captionText !== "") { 94 let captionDiv = document.createElement('div'); 95 captionDiv.className = 'caption'; 96 let captionEle = document.createElement('b'); 97 captionEle.className = 'center-caption'; 98 captionEle.innerText = captionText; 99 captionDiv.appendChild(captionEle); 100 this.insertAdjacentElement('afterend', captionDiv) 101 } 102 }); 103 $('#articleContent, #myGallery').lightGallery({ 104 selector: '.img-item', 105 // å¯ç¨åå¹ 106 subHtmlSelectorRelative: true 107 }); 108 109 // progress bar init 110 const progressElement = window.document.querySelector('.progress-bar'); 111 if (progressElement) { 112 new ScrollProgress((x, y) => { 113 progressElement.style.width = y * 100 + '%'; 114 }); 115 } 116 }; 117 articleInit(); 118 119 $('#toggleSearch').click(function () { 120 $('#searchModal').openModal(); 121 }); 122 123 /*åå°é¡¶é¨*/ 124 $('#backTop').click(function () { 125 $('body,html').animate({scrollTop: 0}, 400); 126 return false; 127 }); 128 129 /*ç嬿»å¨æ¡ä½ç½®*/ 130 let $nav = $('#headNav'); 131 let $backTop = $('.top-scroll'); 132 $(window).scroll(function () { 133 /* åå°é¡¶é¨æé®æ ¹æ®æ»å¨æ¡çä½ç½®çæ¾ç¤ºåéè.*/ 134 let scroll = $(window).scrollTop(); 135 if (scroll < 100) { 136 $nav.addClass('nav-transparent'); 137 $backTop.slideUp(300); 138 } else { 139 $nav.removeClass('nav-transparent'); 140 $backTop.slideDown(300); 141 } 142 }); 143});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.