弹出组件呈现但位于页面外
Popup component renders but positioned off-page
我使用 Tailwindcss 创建了一个弹出元素。
在功能方面,弹出窗口呈现并被完全删除,但问题是弹出组件的属性设置为 h-screen(高度:100%;),如果我向下滚动,弹出窗口看起来会消失。
为了功能,我在正文中添加了一个 class 来防止滚动,但组件仍然呈现得很奇怪。
Image for Example
弹出组件代码:
interface OrderSummaryProps {
renderOrderSummary: () => void;
OrderSummaryPopupState: boolean;
}
// { cartList, renderPopUp }: OrderSummaryProps
function OrderSummary({ renderOrderSummary, OrderSummaryPopupState }: OrderSummaryProps) {
const getBody = document.querySelector('body')
if (OrderSummaryPopupState) getBody?.classList.add('overflow-hidden')
else getBody?.classList.remove('overflow-hidden')
return (
<>
<div className='absolute top-0 bg-black z-10 w-full backdrop-filter backdrop-blur-sm bg-opacity-25 flex justify-center items-center' style={{ height: '100%' }}>
<div className='bg-white shadow-xl w-max h-max border border-neutral-200 rounded-xl flex items-center justify-between flex-col px-20 py-10'>
<div className='flex flex-col justify-center my-10'>
<button onClick={() => renderOrderSummary()} className='rounded-full py-2 px-6 border-2 border-red-200 bg-red-500 font-bold text-white'>סגור חלון</button>
</div>
</div>
</div>
</>
);
}
export default OrderSummary;
该挑战的答案是明智地使用 'fixed' 和 'inset-0' 顺风属性。这已将弹出窗口固定在屏幕上,无论您位于页面的哪个位置。
给像我这样的新手的提示 - front-end 的 Codepen 可以成为你最好的朋友。
我使用 Tailwindcss 创建了一个弹出元素。 在功能方面,弹出窗口呈现并被完全删除,但问题是弹出组件的属性设置为 h-screen(高度:100%;),如果我向下滚动,弹出窗口看起来会消失。
为了功能,我在正文中添加了一个 class 来防止滚动,但组件仍然呈现得很奇怪。
Image for Example
弹出组件代码:
interface OrderSummaryProps {
renderOrderSummary: () => void;
OrderSummaryPopupState: boolean;
}
// { cartList, renderPopUp }: OrderSummaryProps
function OrderSummary({ renderOrderSummary, OrderSummaryPopupState }: OrderSummaryProps) {
const getBody = document.querySelector('body')
if (OrderSummaryPopupState) getBody?.classList.add('overflow-hidden')
else getBody?.classList.remove('overflow-hidden')
return (
<>
<div className='absolute top-0 bg-black z-10 w-full backdrop-filter backdrop-blur-sm bg-opacity-25 flex justify-center items-center' style={{ height: '100%' }}>
<div className='bg-white shadow-xl w-max h-max border border-neutral-200 rounded-xl flex items-center justify-between flex-col px-20 py-10'>
<div className='flex flex-col justify-center my-10'>
<button onClick={() => renderOrderSummary()} className='rounded-full py-2 px-6 border-2 border-red-200 bg-red-500 font-bold text-white'>סגור חלון</button>
</div>
</div>
</div>
</>
);
}
export default OrderSummary;
该挑战的答案是明智地使用 'fixed' 和 'inset-0' 顺风属性。这已将弹出窗口固定在屏幕上,无论您位于页面的哪个位置。
给像我这样的新手的提示 - front-end 的 Codepen 可以成为你最好的朋友。