【问题标题】:Check if an element is in center in React检查一个元素是否在 React 的中心
【发布时间】:2021-02-06 06:28:36
【问题描述】:

我正在实现一个轮播,我想定位滑块中心的元素。所以,我可以让它流行一点。

如何定位这个组件?我找到了知道元素是否在视口内的方法,但我想知道它是否水平居中。

Original Problem

【问题讨论】:

    标签: reactjs dom carousel


    【解决方案1】:

    水平滚动和设置状态

    由于您没有代码,我的答案将是理论上如何去做。 所以首先你应该有一个布尔状态,你可以切换到活动状态。这种状态应该由容器控制。这样你一次只能激活一个。

    接下来你应该得到 2 个值,容器的 X 滚动位置和画廊可见区域的中心点。

    然后你可以只计算安装时的偏移量,然后是画廊的 X 滚动。

    所以理论上它从 0 开始,您的容器是 500px,您知道活动幻灯片位于 250px 标记处,因此您可以根据幻灯片的位置计算出它应该是最后一张通过该点的幻灯片。然后只需在滚动时重新计算此值。 (可能是油门)

    可能可以使用 react-hook-inview

    我之前在 Y 轴上使用过这个反应钩子。我不是 100% 确定它适用于 X 卷轴。但这可能是在每张幻灯片上触发状态更改的好方法。唯一的问题是您将为每张幻灯片添加一个事件侦听器(可能会影响性能)。

    你可以看到那个lib here

    这个让每个滑动控制它自己的 inView 状态。

    【讨论】:

    • 我没有添加代码,因为我试图在 react-slick 中实现它。我已经给出了我所面临的实际问题的链接。请看一看。我认为通过这种方法我将能够解决这个问题。
    猜你喜欢
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多