【发布时间】:2021-08-31 21:46:24
【问题描述】:
如何让我的颜色选择器弹出窗口检测它是否不适合并将其显示在按钮上方?目前它超出了当前视图。我想让它能够检测到它不在当前视图中,而是在按钮上方打开。
这是我目前所拥有的:
const Picker = styled.div`
position: absolute;
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-start;
`;
const Swatch = styled.div`
width: 28px;
height: 28px;
border-radius: 8px;
border: 3px solid #fff;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(0, 0, 0, 0.1);
cursor: pointer;
`;
const PopOver = styled.div`
position: absolute;
z-index: 100;
top: calc(100% + 2px);
bottom: 20rem;
left: 6rem;
border-radius: 9px;
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
`;
<Picker>
<Label>{label}</Label>
{isOpen && (
<PopOver ref={popover}>
<HexColorPicker color={color} onChange={onChange} />
</PopOver>
)}
<Swatch style={{ backgroundColor: color }} onClick={() => toggle(!isOpen)} />
</Picker>
【问题讨论】:
标签: css reactjs typescript styled-components color-picker