javascript - 如何在样式组件中以 px 为单位获取元素的宽度?
问题描述
由于元素可以根据其内容改变其宽度,我不知道如何以 px 为单位获取其宽度。
这是基本的简化结构:
// React component
export const Navbar = ({ month }) => (
<NavbarStyled>
<div>
<span>{month}</span> //month is what varies in width
</div>
</NavbarStyled>
)
// NavbarStyled.js
export const NavbarStyled = styled.nav`
...
span:after{
...
animation: show 1s ease forwards;
}
@keyframes show{
100%{
transform: translateX(the_element's_width_in_px);
}
}
`
我已经尝试了很多没有结果的事情。
谢谢!
解决方案
您可以使用getBoundingClientRect() 函数获取宽度,该函数将返回元素属性的对象。对于样式化的组件,您需要使用useRef挂钩或其他引用方法来引用元素,以便调用 getBoundingClientRect()。
referencedElement.getBoundingClientRect()
// Return the width by calling referencedElement.getBoundingClientRect().width
推荐阅读
- angularjs - 用于多个电子邮件 ID 文本区域控件的 Angular JS 自定义指令
- java - 我们如何动态更改 java rest api 响应中的时区?
- javascript - Twilio Sync:服务器关闭连接,原因是 TOKEN_EXPIRED
- angular - canLoad 守卫没有得到更新的值
- python-3.x - 在 python3.8 中为 openai gym 安装依赖项时出错
- typescript - 联合参数中的条件解构
- qt - ASAP(Automated Slide Analysis Platform) 软件运行时出错
- javascript - 如何将自定义 fontFamily 添加到 reacr-reader npm
- python - 如何获取/请求 api:https://ev.io/stats-by-un/(username)
- graphql - 如何使用 GraphQL 联合实现 Relay 节点查询