antd中的弹框的定位相对不变

在不同的分辨率下,要求弹框的位置相对不变,如果写死left和top的话,会有影响

解决:用js来控制,例如有一个固定的元素model,获取这个固定的元素的left和top, 加减固定的数来给model。
 componentDidUpdate() {
    // console.log(document.querySelector('.modal-plate-select'))
    const switchPlateOffsetTop = $('.section-switch-plate').offset().top + 40
    const switchPlateOffsetLeft = $('.section-switch-plate').offset().left
    let $selectPlate = null
    /* 获取 Modal 组件的 DOM 元素方法一: */ 
    // 选用定时器的原因:第一次 componentDidUpdate 时获取不到 Modal 组件的 DOM 元素,可能是由于动画或者其他原因导致的,所以采用了延时获取的方法,把获取 DOM 元素的逻辑放到异步队列中,这样就可以获取到了。
    setTimeout(() => {
      $selectPlate = document.querySelector('.modal-plate-select')
      if ($selectPlate) {
        $selectPlate.style.top = switchPlateOffsetTop + 'px'
        $selectPlate.style.left = switchPlateOffsetLeft + 'px'
      }
    }, 0)
  }
### 解决 Ant Design Ellipsis 功能中的问题 Ant Design 的 `ellipsis` 属性用于处理文本溢出显示省略号的情况。然而,在某些情况下,当使用带有悬停提示(tooltip)功能的组件时,可能会遇到类似的问题——即在特定交互后 tooltip 不会自动隐藏。 对于这个问题的一种常见解决方案是在触发离开事件或失去焦点的情况下手动关闭 Tooltip 组件[^1]。具体来说: - 可以为包含 ellipsis 和 tooltip 的元素绑定 mouseleave 或 blur 事件监听器。 - 当这些事件被触发时调用 API 方法来隐藏对应的 Tooltop 实例。 下面是一个简单的实现例子,展示了如何通过编程方式控制 Tooltip 显示状态: ```jsx import React, { useState } from 'react'; import { Typography, Tooltip } from 'antd'; const App = () => { const [visible, setVisible] = useState(false); return ( <Tooltip visible={visible} onVisibleChange={(v) => setVisible(v)} title="This is a very long text that will be truncated and shown as an ellipsis." > <Typography.Text ellipsis={{ tooltip: false }}> This is a very long text... </Typography.Text> </Tooltip> ); }; ``` 在这个案例里,`onVisibleChange` 回调函数用来跟踪 Tooltip 是否可见的状态变化,并将其存储在一个本地 state 中;而设置 `ellipsis.tooltip=false` 是为了防止默认行为干扰自定义逻辑[^2]。 此外,还可以考虑利用生命周期钩子或其他高级特性进一步优化用户体验,比如延迟几秒后再真正隐藏 tip 来给予用户足够的阅读时间等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值