infinite-scroll 相关问题

无限滚动,也称为无限滚动,是一种广泛用于网站和Web应用程序的技术,它们在传统上使用分页的页面上托管大量内容。无限滚动涉及最初只加载一页内容。当用户向下滚动时,浏览器通过AJAX请求获取另一个页面。有几个Infinite Scrolling插件可以在现代浏览器中使用这种技术。

Jetpack compose - 加载更多数据或分页,LazyVerticalStaggeredGrid/LazyColumn 消失

每当 LazyVerticalStaggeredGrid/LazyColumn 到达末尾/最后一项时,我都会实现分页或加载更多数据。一切都按预期工作,但是,当数据加载更多功能时,

回答 1 投票 0

使用 Ajaxate 的 Shopify 无限滚动在应用过滤器后停止工作

{% 如果模板包含“集合”%} document.addEventListener("DOMContentLoaded", function() { var 无休止的滚动 = 新的 Ajaxate({ 容器:'#product-grid...</desc> <question vote="0"> <pre><code> {% if template contains &#39;collection&#39; %} &lt;script&gt; document.addEventListener(&#34;DOMContentLoaded&#34;, function() { var endlessScroll = new Ajaxinate({ container: &#39;#product-grid&#39;, pagination: &#39;#Huratips-Pagination&#39;, loadingText: `&lt;div class=&#34;loading&#34; style=&#34;text-transform: uppercase; padding-bottom: 40px; padding-top: 40px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center;&#34;&gt; &lt;span style=&#34;height: 30px; width: 30px; background-repeat: no-repeat; background-size: contain; display: inline-block; background-image: url(https://cdn.shopify.com/s/files/1/0691/4221/6959/files/loader-black.svg?v=1712406692);&#34;&gt;&lt;/span&gt; &lt;span&gt;Loading more products&lt;/span&gt; &lt;/div&gt;` }); }); &lt;/script&gt; {% endif %} </code></pre> <p>我已经在我的shopify商店上编写了用于无限滚动的代码,但是在应用排序或过滤器后,该代码停止工作,可能我认为这是由于当我们在shopify中应用排序或过滤时,它会重新加载类下的内容。 Product-grid-container 并替换整个 html,这就是为什么 #product-grid 及其内容是新的,因此它在应用排序或过滤后停止工作,有什么方法可以处理这种情况吗?</p> <p><a href="https://i.stack.imgur.com/ITYXJ.png" target="_blank"><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tL0lUWVhKLnBuZw==" alt=""/></a></p> <p>在这张图片中,我展示了重新加载 .product-grid-container .collection 下的整个内容,我在 shopify 中使用聚光灯主题。</p> <p>提前感谢您的帮助..:)</p> </question> <answer tick="false" vote="0"> <p>看来你的分析是正确的。当您在 Shopify 中应用排序或过滤时,ID 为 #product-grid 的容器内的内容将被替换,这会破坏 Ajaxate 设置的功能,因为新内容没有附加必要的事件侦听器。</p> <p>要处理这种情况,您需要在应用排序或过滤后重新初始化 Ajaxate。您可以通过监听排序或过滤机制触发的事件来完成此操作,然后在这些事件发生时重新初始化 Ajaxate。</p> <p>以下是如何修改代码来实现此目的:</p> <p></p><div data-babel="false" data-lang="js" data-hide="false" data-console="true"> <div> <pre><code>{% if template contains &#39;collection&#39; %} &lt;script&gt; document.addEventListener(&#34;DOMContentLoaded&#34;, function() { // Function to initialize Ajaxinate function initializeAjaxinate() { var endlessScroll = new Ajaxinate({ container: &#39;#product-grid&#39;, pagination: &#39;#Huratips-Pagination&#39;, loadingText: `&lt;div class=&#34;loading&#34; style=&#34;text-transform: uppercase; padding-bottom: 40px; padding-top: 40px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center;&#34;&gt; &lt;span style=&#34;height: 30px; width: 30px; background-repeat: no-repeat; background-size: contain; display: inline-block; background-image: url(https://cdn.shopify.com/s/files/1/0691/4221/6959/files/loader-black.svg?v=1712406692);&#34;&gt;&lt;/span&gt; &lt;span&gt;Loading more products&lt;/span&gt; &lt;/div&gt;` }); } // Initialize Ajaxinate on page load initializeAjaxinate(); // Listen for events that indicate sorting or filtering is applied // Assuming you have some sort of event that triggers after sorting/filtering // Replace &#39;your-sorting-event&#39; with the actual event name document.addEventListener(&#39;your-sorting-event&#39;, function() { // Reinitialize Ajaxinate after sorting or filtering is applied initializeAjaxinate(); }); }); &lt;/script&gt; {% endif %}</code></pre> </div> </div> <p></p> <p>将“your-sorting-event”替换为 Shopify 在应用排序或过滤后使用的实际事件名称或触发器。如果您使用 JavaScript 来处理排序/过滤,这可能是自定义事件;如果您使用的是 Shopify 库或框架,则它可能是由 Shopify 库或框架提供的事件。</p> <p>这样,每次应用排序或过滤时,Ajaxate 都会重新初始化,确保即使在内容被替换后,无限滚动也能继续工作。</p> </answer> </body></html>

回答 0 投票 0

安装“react-infinite-scroller”并启动反应服务器时出错

Webpack加载器出错。 我已经安装了“react-infinite-scroller”来在项目中构建聊天应用程序。之后

回答 1 投票 0

通过在线API实现无限滚动功能

我正在使用YTS API,我想制作无限滚动功能。 有一个页面参数和限制参数。似乎它可以与他们一起使用,但我不知道如何使用它。我是初学者...

回答 2 投票 0

添加无限滚动回调函数

我有一个 tumblr,我在其中根据图像出现的帖子大小加载不同的 url,使用 javascript 和 tumblr 的主题运算符 {photoUrl-250}、{photoUrl-400} 等。用户 b ...

回答 1 投票 0

通过htmx中动态递增页面加载无限表格

我在 htmx.org 上使用无限滚动示例设置了一个表格。初始 hx-get 设置为 /new?limit=10&page=1 之类的值。 /new 句柄填充数据并显示 page=1,并且...

回答 1 投票 0

“react-infinite-scroll-component”不触发下一个函数

我正在使用react-infinite-scroll-component来实现无限滚动组件。该组件的配置为: 我正在使用react-infinite-scroll-component来实现无限滚动组件。组件的配置为: <div id="scrollableDiv" style={{ height: 300, overflow: "auto" }}> <InfiniteScroll dataLength={texts.length} next={getText} hasMore={true} loader={<h5>Loading...</h5>} endMessage={<p style={{textAlign:'center'}}><b>Yay! You've seen it all!</b></p>} scrollableTarget="scrollableDiv" > {<Texts texts = {texts}/>} </InfiniteScroll> </div> 其中 texts 只是一些文本对象的状态数组; const [texts, setTexts] = useState([]) 这是在 next 中调用的 getText 方法: const getText = async ()=>{ const res = await axios.get("http://localhost:3001/api/sth",{ params: { ids: followings.map(i => i.id), str_ids: followings.map(i => i.str_id) }, paramsSerializer: params => { return qs.stringify(params) } }); let str_ids_res = res.data.map(i => i.string_id) let texts_res = res.data.map(i => i.texts) console.log(texts_res) const filtered_res = //some processing here on texts_res /* eslint eqeqeq: 0 */ if(!arrayIsEqual(filtered_res,texts)){ console.log("Not equal") // append arrays to a array state setTexts((prevtexts) => prevtexts.concat([...filtered_res])) } } await axios.get("http://localhost:3001/api/sth") 总是从数据库返回两个不同的文本,所以setTexts应该总是被调用。 组件是来自语义 UI 的卡片组件。 const Texts = ({texts}) =>{ return ( <> {texts.map(text =>( <div key={text.id}> <Card> <Card.Content> <Card.Description> {text.full_text} </Card.Description> </Card.Content> </Card> </div> ))} </> ); } 即使我的 InfiniteScroll 变量设置正确,Next 组件也只会触发 datalength 一次。 附言。文本最初是空的,所以当我启动应用程序时,只会调用“正在加载...” 经过一些实验,将 height = {some height} 作为 props 传递给 InfiniteScroll 就可以了.. <div id="scrollableDiv" style={{ height: 300, overflow: "auto" }}> <InfiniteScroll dataLength={tweets.length} next={handleScrolling} hasMore={!isEnd} loader={<h5>Loading...</h5>} scrollThreshold={1} height={300} endMessage={ <p style={{textAlign:'center'}}><b>Yay! You've seen it all!</b></p> } scrollableTarget="scrollableDiv" > {<Tweets tweets = {tweets}/>} </InfiniteScroll> </div> 请不要使用空数组初始化“texts”,您必须使用一些对象数组(例如 10 或 20)初始化“texts”数组。 在代码的初始渲染中(第一次)。你可以直接在中触发一个API useEffect(()=>{ // make API call which your firing in the next call function },[]) 因此您的组件进行初始化,然后它将开始按预期运行。 为了便于理解,请参考“代码沙箱”中的示例 https://codesandbox.io/s/elated-danny-k4hylp?file=/src/index.js 我有问题,在开发中无限滚动有效,但在生产中不行,我的意思是,下一个功能在生产中不会触发,但在开发中正常工作,有类似的问题吗?

回答 3 投票 0

创建无限水平滚动(如Ring)

我正在尝试制作一个具有水平子级并从左向右移动的容器 每个子元素,当它到达容器的末尾时 => 到达容器的开头 ...

回答 1 投票 0

在无限div内水平堆叠div

我正在尝试创建本质上是一个水平、无限滚动的 div(直到内部内容宽度)。我想在所述容器内堆叠其他 div,它们将漂浮在每个 ot 旁边......

回答 1 投票 0

React Native 存在 RTK 查询分页问题

我有一个 React Native 移动应用程序,我正在尝试使用 RTK 查询管理 API 请求。在“产品”屏幕上,我使用 getProducts(无限滚动)获取并显示数据。在显示...

回答 1 投票 0

没有重载与此调用匹配。使用 useInfiniteQuery 反应查询错误

我的代码运行良好,但我无法通过此错误 npm run build 。 我想用反应查询和反应交集观察者创建无限滚动。 就这个: 没有重载与此调用匹配。 没有

回答 1 投票 0

抓取无限滚动(一次性抓取/渐进抓取)的最佳实践是什么?

我正在抓取一个具有无限滚动的网站,并且想知道最好的方法是什么: 选项 1:刮擦和滚动(重复) 加载页面 抓取数据 滚动 抓取数据 滚动 重复 任务...

回答 1 投票 0

平滑滚动导致额外页面意外滚动

我使用 Locomotive、ScrollTrigger 和 Gsap 来制作动画。平滑滚动会导致额外的页面意外地在末尾滚动。当我检查网页时显示“has-scroll-init+has-s...

回答 1 投票 0

Laravel - 从 SQL 获取过滤数据并使用无限滚动分页 - 滚动后我仍然获得所有数据

当我使用带有无限滚动分页的 Laravel 分页并且在排序和过滤后还从 SQL 获取数据时,当我刷新页面时我得到了正确的数据,但是在滚动后我

回答 2 投票 0

Flutter 中 PageController 出现异常:“A PagingController was used after was Dispose”

Flutter 社区您好, 我在 Flutter 应用程序中遇到异常,该异常似乎与处置后使用的 PagingController 相关。但是,在我的实现中,我使用的是

回答 1 投票 0

Flutter getx无限滚动刷新listview每结束滚动

我正在尝试在列表视图中进行无限滚动。我正在从 API 获取数据。我正在使用 getx。我的列表视图总是在滚动结束时重建。我找不到我哪里做错了。 这就是我尝试的

回答 2 投票 0

Flutter - 如何使用 SliverAppBar 和无限滚动分页?

我在我的flutter应用程序中使用无限滚动分页插件。我还需要在我的页面中使用 SilverAppBar。这是我的代码: 返回脚手架( 主体:默认选项卡控制器( 长度:2, 孩子:

回答 4 投票 0

有没有更好的方法可以在无限滚动的网页上呈现获取的提要数据?

我正在ReactJS中创建一个网页,用于帖子提要(包含文本、图像、视频),就像无限滚动的Reddit一样。我已经创建了一个帖子组件,它将提供所需的

回答 1 投票 0

交互式网页上无限可移动和可扩展的元素

我正在创建一个网页,它将在屏幕上的指定坐标处显示对象(图像、矩形、圆形)。对象及其坐标存储在数据库中。坐标 x 和 y 位于 ...

回答 1 投票 0

类星体 q-选择无限滚动

如何在 q-select 上应用无限滚动?我看到有“虚拟滚动”事件返回此 json, {索引:11,从:0,到:11,方向:'增加',参考:VueComponent} 但问题...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.