我有一个输入字段,上面有一个箭头onClick
,它显示了一个列表框,我想在打开和关闭它时向这个选择框添加一个转换,但什么也没做。
.combobox-options {
position: absolute;
margin: 0;
padding: 0;
list-style: none;
max-height: 15em;
overflow-y: auto;
overscroll-behavior: contain;
width: 100%;
left: 0;
top: calc(100% + 0.25em);
z-index: 100;
transition: all 0.5s;
}
const [isOpen, setIsOpen] = useState(false);
<input role="combobox" className="combobox-input"/>
<button
className={clsx("arrow", isOpen && "down")}
onClick={() => setIsOpen(!isOpen)}>
</button>
{isOpen && (
<ul
id="combobox-listbox"
role="listbox"
className={clsx("combobox-options")}
>
{options?.map((option: any, index: any) => {
return (
<li>...</li>
);
})}
</ul>
)}
1条答案
按热度按时间waxmsbnn1#
当您使用
javascript
来显示和隐藏ul
元素时,不能使用css
。请从ul
元素周围删除isOpen
,并使用它在CSS类之间切换。使用下面的示例作为更改结构的辅助对象。