React 및 CSS를 사용한 간단한 입력 자동 완성
9083 단어 csstutorialreactjavascript
데모
입력 자동완성 상태
const [value, setValue] = React.useState("");
const [show, setShow] = React.useState(false);
자동 완성 목록 구성 요소입니다. 포커스가 입력에 있을 때 목록이 표시됩니다.
const ItemList = (() => {
if (!show) return [];
return list
.filter((v) => v.toLowerCase().includes(value.toLowerCase()))
.map((v) => (
<button
onClick={() => {
setValue(() => v);
setShow(false);
}}
key={v}
>
{v}
</button>
));
})();
자동 완성 목록에 적용된 스타일입니다.
.container > div input {
width: 100%;
height: 40px;
border: 1px solid #ccc;
border-radius: 5px;
font-size: 16px;
}
.container > div input:focus {
outline: 1px solid rgb(83, 172, 255);
}
입력 구성 요소입니다.
onFocus
는 show
자동 완성 목록을 true
로 설정합니다. onBlur
자동 완성 목록에서 항목을 선택할 수 있으려면 150ms 시간 초과가 필요합니다.<input
onFocus={() => setShow(true)}
onBlur={() =>
setTimeout(() => {
setShow(false);
}, 150)
}
value={value}
onChange={onInputChange}>
</input>
입력 구성 요소에 적용된 스타일입니다.
.list {
display: flex;
flex-direction: column;
max-height: 220px;
width: inherit;
overflow: auto;
overflow-x: hidden;
box-shadow: rgba(0, 0, 0, 0.12) 0px 1px 3px, rgba(0, 0, 0, 0.24) 0px 1px 2px;
}
.list button {
background: none;
border: none;
width: 100%;
height: 100%;
max-height: 3em;
padding: 10px;
text-align: left;
cursor: pointer;
border-bottom: 1px solid #ccc;
}
.list button:hover {
background: #f8f8f8;
}
.list button:last-child {
border-bottom: none;
}
Reference
이 문제에 관하여(React 및 CSS를 사용한 간단한 입력 자동 완성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/luazhizhan/simple-input-autocomplete-with-react-and-css-1j44텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)