#hash 2개의 스레드 ✕ 해제
이온디
이온디 1년 전
v.1 : 게시판이 붙을 경우 검색 안됨 document.querySelectorAll(".content").forEach(content => { content.innerHTML = content.innerHTML.replace(/#([\w가-힣_]+)/g, function (match, tag) { return `<a href="?search=${tag}">${match}</a>`; }); }); #hashtag v.2 : 글 본문에서 검색 안됨 document.qu… v.1 : 게시판이 붙을 경우 검색 안됨 document.querySelectorAll(".content").forEach(content => { content.innerHTML = content.innerHTML.replace(/#([\w가-힣_]+)/g, function (match, tag) { return `<a href="?search=${tag}">${match}</a>`; }); }); #hashtag v.2 : 글 본문에서 검색 안됨 document.querySelectorAll(".content").forEach(content => { // 현재 페이지 URL에서 마지막 경로(게시판 ID) 가져오기 const pathParts = window.location.pathname.split("/").filter(Boolean); // 빈 값 제거 const boardId = pathParts.length > 0 ? pathParts[pathParts.length - 1] : ""; // 마지막 경로 값 (게시판 ID) console.log(boardId); // 변수명 수정 content.innerHTML = content.innerHTML.replace(/#([\w가-힣_]+)/g, function (match, tag) { if (boardId) { return `<a href="./${boardId}/?search_keyword=${tag}&search_target=title_content">${match}</a>`; } else { return `<a href="./?search_keyword=${tag}&search_target=title_content">${match}</a>`; } }); });v.3 document.querySelectorAll(".content").forEach(content => { // 현재 페이지 URL에서 경로 가져오기 const pathParts = window.location.pathname.split("/").filter(Boolean); // 빈 값 제거 let boardId = pathParts.length > 0 ? pathParts[0] : ""; // 첫 번째 경로(게시판 ID) // 글 번호(두 번째 경로)가 있으면 제거 (ex: threads/471363 → threads/) if (pathParts.length > 1 && !isNaN(pathParts[1])) { boardId = pathParts[0]; // 첫 번째 경로만 남기기 } console.log("게시판 ID:", boardId); // 디버깅용 content.innerHTML = content.innerHTML.replace(/#([\w가-힣_]+)/g, function (match, tag) { if (boardId) { return `<a href="/${boardId}/?search_keyword=${tag}&search_target=title_content">${match}</a>`; } else { return `<a href="/?search_keyword=${tag}&search_target=title_content">${match}</a>`; } }); }); 참조 https://codepen.io/nikolett_codes/pen/daWxea https://xe1.xpressengine.com/?mid=download&package_id=22753681 https://xe1.xpressengine.com/index.php?mid=download&package_id=22753695
이온디
이온디 6년 전
https://css-tricks.com/snippets/jquery/smooth-scrolling/ https://css-tricks.com/snippets/jquery/smooth-scrolling/" style="height: 452px;">https://css-tricks.com/snippets/jquery/smooth-scrolling/ Hey! Before you go too far down the rabbit hole of JavaScript-based smooth scrolling,… https://css-tricks.com/snippets/jquery/smooth-scrolling/ https://css-tricks.com/snippets/jquery/smooth-scrolling/" style="height: 452px;">https://css-tricks.com/snippets/jquery/smooth-scrolling/ Hey! Before you go too far down the rabbit hole of JavaScript-based smooth scrolling, know that there is a native CSS feature for this: scroll-behavior. html { scroll-behavior: smooth; }And before you reach for a library like jQuery to help, there is also a native JavaScript version of smooth scrolling, like this: // Scroll to specific values // scrollTo is the same window.scroll({ top: 2500, left: 0, behavior: 'smooth' }); // Scroll certain amounts from current position window.scrollBy({ top: 100, // could be negative value left: 0, behavior: 'smooth' }); // Scroll to a certain element document.querySelector('.hello').scrollIntoView({ behavior: 'smooth' });Dustan Kasten has a polyfill for this. And you’d probably only reach for this if you were doing something with scrolling the page that couldn’t be done with #target jump links and CSS. #Accessibility of Smooth ScrollingWhatever technology you use for smooth scrolling, accessibility is a concern. For example, if you click a #hash link, the native behavior is for the browser to change focus to the element matching that ID. The page may scroll, but the scrolling is a side effect of the focus changing. If you override the default focus-changing behavior (which you have to, to prevent instant scrolling and enable smooth scrolling), you need to handle the focus-changing yourself. Heather Migliorisi wrote about this, with code solutions, in Smooth Scrolling and Accessibility. #Smooth Scroll with jQueryjQuery can also do this. Here’s the code to perform a smooth page scroll to an anchor on the same page. It has some logic built in to identify those jump links, and not target other links. // Select all links with hashes $('a[href*="#"]') // Remove links that don't actually link to anything .not('[href="#"]') .not('[href="#0"]') .click(function(event) { // On-page links if ( location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname ) { // Figure out element to scroll to var target = $(this.hash); target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); // Does a scroll target exist? if (target.length) { // Only prevent default if animation is actually gonna happen event.preventDefault(); $('html, body').animate({ scrollTop: target.offset().top }, 1000, function() { // Callback after animation // Must change focus! var $target = $(target); $target.focus(); if ($target.is(":focus")) { // Checking if the target was focused return false; } else { $target.attr('tabindex','-1'); // Adding tabindex for elements not focusable $target.focus(); // Set focus again }; }); } } });