gpt4 book ai didi

javascript - 如何仅在使用 jQuery 单击 loadmore 按钮时才使用 slipTo() ?

转载 作者:行者123 更新时间:2023-12-02 20:04:23 26 4
gpt4 key购买 nike

在我的脚本中,我从外部 RSS 源加载一些帖子。我有一个“加载更多”按钮,单击该按钮时,会调用 loadfeed() 函数并显示另外 10 个帖子。

发生这种情况时,有一个 slideTo() 将浏览器滑动到新帖子列表的第一个。

除了“加载更多”按钮之外,我还有一个计时器来检查这些提要的任何新帖子。这种情况每 3 分钟发生一次。

正如我所说,如果您单击“加载更多”按钮,页面就会移动,第一个新帖子会出现在屏幕顶部。这里的问题是,如果您单击“加载更多”按钮,阅读文章,并且当您阅读 3 分钟后,您滑回到加载的新列表的第一篇文章,也会发生这种滑动。更具体地说,当您加载(默认 20 个)+10 个帖子后,您将在 3 分钟后滑至第 21 个帖子。

所以我的问题是如何避免这种情况?

这是调用 loadfeed() 的 #loadmore 按钮

$("#loadmore").click(function() {
cap += 10;
loadfeed();

});

这是 loadfeed() 处理滑动的一部分。我有一个 if 语句,用于在默认的 20 个帖子之后发生滑动。如果没有这个,您将在 3 分钟后滑至第 11 条帖子,并且不会点击“加载更多”。

if (cap > 20) {
$(".p" + (cap-9)).slideto({
slide_duration : 'slow'
});
}

最佳答案

如果我误解了,请原谅,但是你不能只向 loadfeed() 传递一个参数吗?

$("#loadmore").click 中,调用 loadfeed(true) 并为计时器调用 setTimeout(function () { loadfeed(false) ); }, 12000);.或者类似的。

编辑:

我不知道您使用的是哪个幻灯片插件。我已经下载了其中两个,但都不像你的那样工作。我已经让它与 scrollTo plugin 一起工作。

在此代码中,我删除了所有 AJAX 位和其他一些似乎与问题无关的内容。基本的更改是向 loadfeed() 添加一个参数,告诉它在添加新内容时是否滚动。单击该按钮使其滚动到底部;等待计时器不会。 (我还添加了一个clearTimeout,以便在有人疯狂使用加载按钮时停止计时器多次触发。)

<!DOCTYPE html>
<html lang="en">
<head>
<title>Testing</title>
<style type="text/css">
.Top { background-color: #ccc; padding: 10px; position: fixed; }
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script type="text/javascript" src="jquery.scrollTo.js"></script>
<script type="text/javascript">
$(function ()
{
var cap = 0;
var timerId = null;

function loadfeed(scroll)
{
cap++;
$("#loadmore").hide();
$('#feed')
.addClass('loading')
.append("<div class=\"p" + cap + "\"><p>Biodiesel put a bird on it pitchfork beard cosby sweater tattooed, 3 wolf moon skateboard thundercats. Craft beer irony sartorial DIY. Portland photo booth trust fund, mlkshk yr you probably haven't heard of them salvia. Trust fund marfa food truck Austin etsy synth. Seitan chambray williamsburg, thundercats american apparel cardigan four loko letterpress food truck cosby sweater. Art party Austin biodiesel, single-origin coffee etsy organic mlkshk yr PBR. Skateboard master cleanse 3 wolf moon, freegan Austin tumblr messenger bag vinyl dreamcatcher.</p><p>Tumblr before they sold out helvetica, chambray iphone yr DIY cosby sweater PBR synth stumptown keytar. Letterpress you probably haven't heard of them iphone, keffiyeh photo booth chambray american apparel lomo artisan. Hoodie beard quinoa locavore four loko mixtape. Tofu stumptown viral you probably haven't heard of them, readymade thundercats echo park etsy 8-bit. Pitchfork ethical before they sold out, freegan keffiyeh yr marfa banh mi echo park williamsburg tofu PBR twee. Keffiyeh pitchfork food truck, gluten-free bicycle rights iphone fixie banh mi vinyl craft beer tofu keytar +1 brooklyn. Synth echo park letterpress locavore, chambray butcher banh mi vinyl tofu twee four loko food truck beard mustache fap.</p></div>")
.removeClass('loading');
if (timerId !== null) clearTimeout(timerId);
timerId = setTimeout(function () { loadfeed(false); }, 12000);
$("#loadmore").show();

if (scroll) $(window).scrollTo(".p" + cap);
}

loadfeed();

$("#loadmore").click(function ()
{
loadfeed(true);
});
});
</script>
</head>
<body>
<div class="Top"><button id="loadmore">Load</button></div>
<div id="feed">Feed</div>
</body>
</html>

关于javascript - 如何仅在使用 jQuery 单击 loadmore 按钮时才使用 slipTo() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7626934/

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