Javascript 使用jQuery延迟div的加载?
我正在尝试延迟加载一行div,直到滚动,有点像这样。出于某种原因,我似乎无法启动任何jquery jQuery/JSJavascript 使用jQuery延迟div的加载?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在尝试延迟加载一行div,直到滚动,有点像这样。出于某种原因,我似乎无法启动任何jquery jQuery/JS // lazy load $(".resource-container resume-row").slice(1).hide(); var mincount = 0; var maxcount = 1; $(window).scroll(function () { if ($(window).scrollTop() + $(window).height()
// lazy load
$(".resource-container resume-row").slice(1).hide();
var mincount = 0;
var maxcount = 1;
$(window).scroll(function () {
if ($(window).scrollTop() + $(window).height() >= $(document).height() - 50) {
$(".resource-container .resume-row").slice(mincount, maxcount).slideDown(100);
mincount = mincount + 0;
maxcount = maxcount + 5;
//Loads 1 variable at a time
}
});
以下是我迄今为止的尝试:。我希望最终加载3/4行(以此类推),然后让第4行一次加载1行
谢谢你的帮助 在类名“resume row”的第一个选择器中缺少类名表示(.)
这里有一个如何减慢某些div的想法 我获取div的数量,并为它们分配一个数据行属性,该属性保持div的数量。然后,我使用模运算符“%”来确定它们是否可以除以4。模给你们一个余数,这就是为什么它比直接除法更好的情况下,你们的元素数量可以改变。a、 如果你需要限制页面上元素的数量。我将事件附加到按钮上以显示它们。该代码表示,如果在执行数据行%4公式后剩余的数字为0,则使用.delay()方法防止fadeToggle触发900ms,如果有剩余,则仍将使用.delay()方法,但仅持续500ms
var i;
for(i=1; i < ($("div").length +1);i++) {
$("div").eq(i-1).attr("data-row", i);
}
$("#showthese").on("click", function() {
var resources = $("div").length;
for(i=0; i < resources;i++) {
if ($("div").eq(i).attr("data-row") % 4 === 0) {
$("div").eq(i).delay(900).fadeToggle();
}
else {
$("div").eq(i).delay(500).fadeToggle();
}
}
});
vari;
对于(i=1;i<($(“div”)。长度+1;i++){
$(“div”).eq(i-1).attr(“数据行”,i);
}
$(“#显示这些”)。在(“单击”,函数(){
var资源=$(“div”).长度;
for(i=0;i
这就是概念。可以用任何动画替换淡入淡出切换 一个无限滚动/延迟加载插件可能就是你想要的,所以你不必重新发明轮子和处理所有的边缘情况:我会使用LazyLoadXT,但由于它是在Hubspot的COS/CMS上构建的,所以受到限制。如果我在angular中构建或使用LazyLoad,则无法将项目包含在数组中。我看到您修复了选择器,但现在您注意到您的滚动事件不会触发,因为您无法滚动?给你的
body
一个溢出的height
,这样就可以滚动了,比如body{height:1000px}
我只是缩小了我的浏览器的大小,这样它们就可以堆叠1x1来测试你是如何错过这些东西的。长话短说,代码现在是正确的,正在使用codepen,所以从技术上来说,这就是解决方案。出于某种原因,它不想在Hubspot的COS/CMS中启动。所以我现在和他们一起接受技术支持,谢谢你的帮助哈哈
var i;
for(i=1; i < ($("div").length +1);i++) {
$("div").eq(i-1).attr("data-row", i);
}
$("#showthese").on("click", function() {
var resources = $("div").length;
for(i=0; i < resources;i++) {
if ($("div").eq(i).attr("data-row") % 4 === 0) {
$("div").eq(i).delay(900).fadeToggle();
}
else {
$("div").eq(i).delay(500).fadeToggle();
}
}
});