gpt4 book ai didi

javascript - jQuery无限滚动不触发

转载 作者:数据小太阳 更新时间:2023-10-29 05:39:00 25 4
gpt4 key购买 nike

我正在制作一个简单的小网站,以将不同的格式样式应用于 Reddit 帖子,我正在尝试添加无限滚动 jQuery 插件,但它没有做任何事情。我尝试按照无限滚动页面上的(非常简单的)说明进行操作,当它没有执行任何操作时,我想我一定是输入了错误的内容,但后来我只是复制/粘贴了 Masonry/Infinite-Scroll example 中的代码,然后它仍然没有用。砌体工作完美(终于),但我无法弄清楚无限滚动有什么问题。我了解 jQuery 和 JavaScript 的基础知识,但显然不如你们大多数人了解的多,所以请您帮帮我,让我知道哪里出了问题?我的网站在 reddit.ymindustries.com 上线。

非常感谢,到目前为止,你们很少让我失望。

YM

编辑:如果没有足够的图片填满主页上的页面,请访问 reddit.ymindustries.com/r/aww 以获取更多图片。

编辑 2:我相信我找到了问题所在,此处对其进行了描述:https://github.com/paulirish/infinite-scroll/issues/5现在想办法解决...

编辑 3:添加了一些小技巧以使其正常工作,但它现在似乎无休止地循环第二页。嗯……

最佳答案

我认为你的问题实际上是 css。让你的页面比客户区的高度长。向 $container 添加更多图像

要点是,你的 $container 的底部边缘需要通过窗口底部,这样滚动事件就会触发,无限滚动可以对此事件使用react并计算天气是否到达边缘

顺便说一句,在相同的情况下,例如,当我缩小窗口时,您设置的示例正在运行。

===更新===

我找了一些时间来玩无限滚动,这是最终的工作脚本,只需在脚本中设置 pathParse 方法

$(function () {

var $container = $('#itemContainer');

$container.imagesLoaded(function () {
$container.masonry({
itemSelector:'.item'
});
});
$container.infinitescroll({
navSelector:'.navigation', // selector for the paged navigation
nextSelector:'.navigation #next', // selector for the NEXT link (to page 2)
itemSelector:'.item', // selector for all items you'll retrieve
bufferPx:40,
debug:true,
columnWidth:function (containerWidth) {
return containerWidth / 5;
},
loading:{
finishedMsg:'No more pages to load.',
img:'http://i.imgur.com/6RMhx.gif'
},
pathParse: function(path,page){
return $(this.nextSelector).attr("href");
}
},
// trigger Masonry as a callback
function (newElements) {
// hide new items while they are loading
var $newElems = $(newElements).css({ opacity:0 });
// ensure that images load before adding to masonry layout
$newElems.imagesLoaded(function () {
// show elems now they're ready
$newElems.animate({ opacity:1 });
$container.masonry('appended', $newElems, true);
});
//console.log("test (never fired :( )");
}
);

});

现在,由于您的下一个链接不会自行更新 (http://reddit.ymindustries.com/?after=t3_yh4av),您需要更改回调以从 ajax 响应中提取最后一个元素并更改下一个链接...可能是这样的

function (newElements) {
// hide new items while they are loading
var $newElems = $(newElements).css({ opacity:0 });
// ensure that images load before adding to masonry layout

// ======> if query parameter after=... is caring filename then do this
var lastImageUrl= $newElements[$newElements.length-1].attr("src");
var lastFileName= lastImageUrl.substring(lastImageUrl.lastIndexOf("/") +1, lastImageUrl.lastIndexOf("."));
$("#next").attr("href", "http://reddit.ymindustries.com/?after="+lastFileName);

$newElems.imagesLoaded(function () {
// show elems now they're ready
$newElems.animate({ opacity:1 });
$container.masonry('appended', $newElems, true);
});
//console.log("test (never fired :( )");
}

关于javascript - jQuery无限滚动不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12019123/

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