gpt4 book ai didi

javascript - 跟踪 react 窗口呈现的项目的可见性

转载 作者:行者123 更新时间:2023-12-05 03:59:50 26 4
gpt4 key购买 nike

我正在寻找一种方法来了解在使用 react-window 时哪个列表项在屏幕上可见。

isVisible 属性错误地返回可见性。

https://codesandbox.io/s/bvaughnreact-window-fixed-size-list-vertical-nmukq

import React from "react";
import { render } from "react-dom";
import { FixedSizeList as List } from "react-window";
import AutoSizer from "react-virtualized-auto-sizer";
import TrackVisibility from "react-on-screen";

import "./styles.css";

const Row = ({ index, style, isVisible }) => (
<div className={index % 2 ? "ListItemOdd" : "ListItemEven"} style={style}>
Row {index + " is" + isVisible}
</div>
);
const RowWrapper = ({ index, style }) => (
<TrackVisibility>
<Row index={index} style={style} />
</TrackVisibility>
);

const Example = () => (
<AutoSizer>
{({ height, width }) => (
<List
className="List"
height={height}
itemCount={1000}
itemSize={35}
width={width}
>
{RowWrapper}
</List>
)}
</AutoSizer>
);

render(<Example />, document.getElementById("root"));

这可能是因为项目的缓存,但我想知道是否有另一种方法来跟踪项目的可见性

最佳答案

我自己想出来的。请在以下位置找到代码沙箱

DynamicSizeList - https://codesandbox.io/s/piecykreact-window-dynamic-size-list-vertical-pooy2

通过捕获 onWheel 事件并将“tops”与 clientHeight 和 ListHeight 进行比较

固定大小列表 - https://codesandbox.io/s/bvaughnreact-window-fixed-size-list-vertical-nmukq

同样基于 onWheel 事件。

它不适用于屏幕 react

如果有人知道更好的方法,请回答。

关于javascript - 跟踪 react 窗口呈现的项目的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56810406/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com