홈페이지 필수 요소 중 하나인 검색 바!
다들 알다시피

요로코롬 생겼다
보통 홈페이지 메인 화면에 있는 검색바는

이렇게 아이콘으로 대체하다 마우스를 클릭하면

입력창으로 바뀌는 모양으로 한다.
(나도 못 만들 건 없지)
[HTML 코드] ↓
검색 바 영역 클래스 -> search
검색 바 입력 박스 선언 -> type="text"
검색(돋보기) 아이콘 클래스 -> material-icons
여기서 돋보기 아이콘은
구글 폰트에서 무료로 배포하는 아이콘으로 사용하였다
다운로드 하려면 ↓
Browse Fonts - Google Fonts
Making the web more beautiful, fast, and open through great typography
fonts.google.com
html 본문 위에 이렇게 선언해야 search를 <div>태그 안에 넣었을 때 반영된다.
+ <input type=''"/> 속성 종류
- text: 텍스트 입력 박스 생성
- password: 패스워드 입력 박스 생성( 입력키 가림 )
- button: 버튼 생성
- checkbox: 체크 박스 생성( 여러 개 중복 선택 가능 )
- radio: 체크 박스 생성( 1개만 선택 가능)
- file: 파일 첨부 버튼 생성
- email: 이메일 입력 박스 생성
- url: 웹사이트 입력 박스 생성
- tel: 전화번호 입력 박스 생성
- date: 날짜 입력 박스 생성
[ JS 코드 ]
[검색(돋보기) 아이콘과 검색바 선언] ↓
- 문서 내의 클래스가 .search 인 요소를 찾아 searchEl에 반환한다.
- 문서 내의 input 요소를 찾아 searchInputEl에 반환한다.
[ 검색(돋보기) 아이콘을 누르면] ↓
searchEl.addEventListener('click', function() { ... });
- 사용자가 searchEl을 클릭했을 때 실행되는 이벤트 리스너
searchInputEl.focus();
- 입력 필드(searchInputEl)에 포커스를 설정 -> 아이콘에서 입력바로 바뀜
[ 검색(돋보기) 아이콘을 눌렀을 때의 상황] ↓
searchInputEl.addEventListener('focus', ...)
- 검색바가 포커스 되어있을 때 실행되는 이벤트 리스너
searchEl.classList.add('focused')
- searchEl 요소에 CSS 클래스를 추가
- classList: HTML 요소의 클래스 속성을 조작
.add('focused'):
- 'focused'라는 클래스를 searchEl에 동적으로 추가
-> 이게 무슨 소리냐면
<div class="search"></div> -> <div class="search focused"></div> 로 바뀜
searchInputEl.setAttribute('placeholder', '통합검색')
- setAttribute 메서드를 사용하여 HTML 요소의 속성을 동적으로 설정
- searchInputEl에 CSS 속성인 placeholder 요소를 추가, '통합검색'이라는 글자 추가
-> placeholder: 사용자가 입력하지 않은 상태일 때 나타나는 글자
[ 검색바를 마우스에서 뗐을 때의 상황] ↓
searchInputEl.addEventListener('blur', ...)
- 검색바 포커스가 해제되었을 때 실행되는 이벤트 리스너
- blur: 입력 필드에서 포커스가 해제될 때 발생되는 이벤트로, 마우스를 떼거나 Tab 키를 눌렀을 때 발생
searchEl.classList.remove('focused')
- classList에서 추가한 focused를 제거
searchInputEl.setAttribute('placeholder', '')
- 검색창에 표시되던 글자를 빈 문자열('')로 설정 = 글자 없앤다는 것과 동일
[ 검색바 관련 디자인] ↓
헤더에 있고 서브 메뉴에 있는 search 영역 ↓
헤더에 있고 서브 메뉴에 있는 search 안 입력박스 ↓
검색바가 포커스 되어있을 때 ↓
cursor: auto; : 커서를 기본 동작에 따라 자동 동작
이건 pointer;로 해도 무방
검색(돋보기) 아이콘 ↓
transition: 애니메이션 변환으로, 검색(돋보기) 아이콘에서 검색 바로 자연스럽게 바꾸기 위해 추가
search 영역이 포커스 되었을 때 ↓
검색 바로 바뀌고 검색(돋보기) 아이콘은 사라져야겠죠?
opacity: 선명도
선명도를 0으로 설정하여 사라지게 함
그리하여 만들어진 검색 바


영상으로 보시죠
javascript에 대한 메소드나 함수, 이벤트에 대해 막연히 클론 코딩만 했었는데 이제는 조금씩 이해가 되니 재밌네요 ㅎㅎ
오늘도 파이팅입니다!

'웹 개발 일지' 카테고리의 다른 글
| [웹 개발 #2] 화면을 맨 위로 이동하는 편리한 버튼 만들기 (6) | 2024.12.13 |
|---|---|
| [웹 개발 #1] 휙 휙 지나가는 슬라이드 만드는 방법 (4) | 2024.12.10 |