gpt4 book ai didi

jquery - 动态增加高度 - ScrollSpy

转载 作者:行者123 更新时间:2023-11-28 10:57:10 29 4
gpt4 key购买 nike

我已经在我的应用程序中实现了 Scrollspy。因为我在我的应用程序中使用了 knockout 框架,用户可以在一个部分中添加最多 15 行。所以如果他们添加 15 行,滚动 spy 高度就会受到影响。我怎样才能做到动态地。

代码:

$(window).scroll(function () {
var myArray = new Array();
var curArray = '';
$('div.spyClass').each(function () {
myArray.push($(this).offset().top);
});
for (var i = 0; i <= myArray.length; i++) {
if ($(this).scrollTop() >= myArray[i]) {
//When i add new rows the height of this wil become (say 520+).Then automatically the second link is getting the active .Eventhought it is not active.
if ($(this).scrollTop() >= -20 && $(this).scrollTop() <= 101) {
}
else if ($(this).scrollTop() >= 101 && $(this).scrollTop() <= 520) {
}
else if ($(this).scrollTop() >= 520 && $(this).scrollTop() <= 840) {
}
else if ($(this).scrollTop() >= 830 && $(this).scrollTop() <= 1300) {
}
else if ($(this).scrollTop() >= 1300 && $(this).scrollTop() <= 1600) {
}
}
}
});

请给我解决方案,让它变得动态。

最佳答案

我是这样实现的。

获取单个内容高度并添加到滚动事件的计算中。假设我有三个部分。

$(window).scroll(function () {

var firstCont= ($('#Content1').height() + 20); -- Since i have fixed position header 20 is needed
var secondCont = envEnd + ($('#Content2').height() + 20);
var thirdCon = serEnd + ($('#Content3').height() + 20);


var myArray = new Array();
var curArray = '';
$('div.spyClass').each(function () {
myArray.push($(this).offset().top);
});
for (var i = 0; i <= myArray.length; i++) {
if ($(this).scrollTop() >= myArray[i]) {
if ($(this).scrollTop() >= -20 && $(this).scrollTop() <= firstCont) {
}
else if ($(this).scrollTop() >= firstCont && $(this).scrollTop() <= secondCont) {
}
else if ($(this).scrollTop() >= secondCont && $(this).scrollTop() <= thirdCont) {
}
}
}
});

关于jquery - 动态增加高度 - ScrollSpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22573908/

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