간단한 인 페이지 검색 기능으로 정보가 풍부한 페이지에서 사용자 경험을 향상시킵니다. 데이터베이스 쿼리 또는 JSON 구문 분석은 잊어 버립니다.이 메소드는 웹 페이지의 렌더링 된 텍스트 내용을 직접 검색합니다. 브라우저 내장 검색 검색이 존재하지만이 접근 방식은 정제 된 필터링 경험을 제공하여 관련 결과를 강조하여 더 쉬운 탐색을 강조합니다.
기능을 보여주는 라이브 데모는 다음과 같습니다. [데모 링크]
이 기술을 실제 프로젝트에서 https://www.php.cn/link/2a60eed05079970d61abad679da7ae8f 에서 사용합니다.
JavaScript 활용
이 튜토리얼은 JavaScript를 사용하여 모든 대화식 요소를 관리합니다. 구체적으로, 그것은 다음과 같습니다.
- 검색 가능한 콘텐츠를 식별합니다.
- 검색 필드에서 사용자 입력을 모니터링합니다.
- 검색 가능한 요소의
innerText
필터링하십시오. - 텍스트에 검색어가 포함되어 있는지 확인하십시오 (
.includes()
는 여기에서 중요합니다). - 검색어 일치를 기반으로 요소 가시성을 전환합니다.
기본 HTML 구조
각 질문이 제목 및 내용이있는 "카드"로 표시되는 FAQ 페이지를 가정 해 봅시다.
<h1 id="FAQ-섹션"> FAQ 섹션</h1> <div> <h3 id="우리는-누구입니까">우리는 누구입니까</h3> <p>그것은 5 세기뿐만 아니라 전자 조판으로의 도약으로 살아 남았으며, 본질적으로 변하지 않았다. 대중화되었습니다</p> </div> <div> <h3 id="우리가하는-일">우리가하는 일</h3> <p>그것은 5 세기뿐만 아니라 전자 조판으로의 도약으로 살아 남았으며, 본질적으로 변하지 않았다. 대중화되었습니다</p> </div> <div> <h3 id="왜-여기서-일합니다">왜 여기서 일합니다</h3> <p>그것은 5 세기뿐만 아니라 전자 조판으로의 도약으로 살아 남았으며, 본질적으로 변하지 않았다. 대중화되었습니다</p> </div> <div> <h3 id="자세히-알아보십시오">자세히 알아보십시오</h3> <p>우리에 대해 더 배우고 싶습니까?</p> </div>
수많은 질문이있는 페이지의 경우이 구조는 효과적으로 스케일링됩니다.
상호 작용을 활성화하기 위해 단일 CSS 규칙을 사용하겠습니다.
. is-hidden {display : 없음; }
이 클래스는 요소 가시성을 제어하기 위해 동적으로 추가되거나 제거됩니다. 검색 입력도 추가하겠습니다.
<label for="searchbox">찾다:</label> <input type="text" id="searchbox">
핵심 자바 스크립트 기능
다음 JavaScript 코드는 검색 기능을 관리합니다.
function livesearch () { let cards = document.querySelectorAll ( '. cards'); // 카드 요소를 선택합니다 searchQuery = document.getElementById ( "SearchBox"). 값을 보자. // 검색어를 얻습니다 cards.foreach (card => { TextContent = card.innertext.tolowercase (); // 소문자로 정규화합니다 searchtermlower = searchQuery.tolowerCase (); // 소문자로 정규화합니다 if (textContent.includes (SearchTermLower)) { card.classlist.remove ( 'is-hidden'); // 일치 카드 표시 } 또 다른 { card.classlist.add ( 'is-hidden'); // 일치하지 않는 카드를 숨 깁니다 } }); } // 과도한 기능 호출을 방지하기 위해 작은 지연 추가 TypingTimer를하자; 타입 interval = 500을하자; // 반 초 let searchInput = document.getElementById ( 'SearchBox'); searchInput.addeventListener ( 'keyup', () => { 클리어 타임 아웃 (typingtimer); typingtimer = settimeout (livesearch, typeinterval); });
코드는 카드를 통해 반복, 검색어 포함 확인 (사례에 민감하지 않음) 및 그에 따라 가시성을 업데이트합니다. 지연은 빠른 키 스트로크의 성능 문제를 방지합니다.
검색 기능 확장 : 퍼지 매칭
퍼지 매칭 (명시 적으로 표시되지 않더라도 관련 키워드 검색)을 통합하려면 숨겨진 요소 또는 속성 사용을 고려하십시오.
방법 1 : 숨겨진 요소
키워드가 포함 된 숨겨진 요소 추가 :
<div> <h3 id="우리는-누구입니까">우리는 누구입니까</h3> <p>...</p> <span class="hidden-keywords">비밀, 회사, 역사</span> </div>
숨겨진 키워드에 액세스하기 위해 innerText
대신 textContent
포함하도록 liveSearch
수정하십시오.
방법 2 : 속성
이미지에 alt
와 같은 속성을 사용하십시오.
<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174227042512545.jpg?x-oss-process=image/resize,p_40" class="lazy" alt="바닐라 JavaScript를 사용한 내부 필터링 검색">
getAttribute('alt')
사용하여 liveSearch
조정하여 속성 값을 검색하십시오.
중요한 메모
이 검색 방법은 DOM에서 이미 렌더링 된 콘텐츠로 제한됩니다. 외부 데이터베이스 또는 대형 데이터 세트를 검색하는 데 적합하지 않습니다.
결론
바닐라 JavaScript로 구현 된이 간단하지만 효과적인 인 페이지 검색 솔루션은 광범위한 컨텐츠로 웹 페이지의 유용성을 크게 향상시킬 수 있습니다. FAQ 페이지에서 이미지 갤러리에 이르기까지 다양한 응용 프로그램에 맞게이 기술을 적응하고 확장하십시오.
위 내용은 바닐라 JavaScript를 사용한 내부 필터링 검색의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

라이브 토크 나 수업 중에 대화식 애니메이션을 표시해야한다면 슬라이드와 상호 작용하기가 항상 쉽지 않다는 것을 알 수 있습니다.

Astro를 사용하면 빌드 중에 대부분의 사이트를 생성 할 수 있지만 Fuse.js와 같은 것을 사용하여 검색 기능을 처리 할 수있는 작은 서버 측 코드가 있습니다. 이 데모에서는 퓨즈를 사용하여 개인 "북마크"세트를 검색합니다.

문서가 저장되는 동안 Google 문서에서 볼 수있는 것과 유사한 프로젝트 중 하나에서 알림 메시지를 구현하고 싶었습니다. 다시 말해, a

몇 달 전에 나는 해커 뉴스를 썼고 (하나와 마찬가지로) IF 문을 사용하지 않는 것에 대한 (현재 삭제 된) 기사를 가로 질러 달렸습니다. 이 아이디어를 처음 접한다면 (나처럼

공상 과학 소설의 초기부터 우리는 우리와 대화하는 기계에 대해 환상을 가지고 있습니다. 오늘은 평범합니다. 그럼에도 불구하고 제작 기술

Gutenberg가 핵심으로 풀려 났을 때를 기억합니다. 왜냐하면 나는 그날 WordCamp에 있었기 때문입니다. 지금은 몇 달이 지났으므로 점점 더 많은 것을 상상합니다.

대부분의 웹 애플리케이션의 배후에있는 아이디어는 데이터베이스에서 데이터를 가져 와서 최상의 방법으로 사용자에게 제시하는 것입니다. 우리가 거기에서 데이터를 다룰 때

#039;는 당신이 의미있는 것처럼 보일 수있는 상황에 대한 약간의 단계를 수행하자. 이것에서


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

드림위버 CS6
시각적 웹 개발 도구
