gpt4 book ai didi

javascript - jQuery 计数函数

转载 作者:行者123 更新时间:2023-12-01 05:18:00 24 4
gpt4 key购买 nike

我写这个是为了在到达 #counter 时启动计数功能。当我滚动到 #counter 时,数字会像预期的那样从 1 变为 600。问题是它又回到了 1。我只想保持在 600。

$(window).scroll(function() {
var hT = $('#counter').offset().top,
hH = $('#counter').outerHeight(),
wH = $(window).height(),
wS = $(this).scrollTop();
console.log((hT - wH), wS);

if (wS > (hT + hH - wH)) {
$('.count').each(function() {
$(this).prop('Counter', 0).animate({
Counter: $(this).text()
}, {
duration: 2000,
easing: 'swing',
step: function(now) {
$(this).text(Math.ceil(now));
}
});
});
}

});
.box {
height: 900px;
background: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box"></div>
<div id="counter">
<div><span class="count">600</span></div>
</div>

最佳答案

一旦该值达到 600,您就可以使用 .stop() jQuery 方法停止动画。

$(window).scroll(function() {
var hT = $('#counter').offset().top,
hH = $('#counter').outerHeight(),
wH = $(window).height(),
wS = $(this).scrollTop();

if (wS > (hT+hH-wH)) {

$('.count').each(function (index, value) {
$(this).prop('Counter', 0).animate({
Counter: $(this).text()
}, {
duration: 2000,
easing: 'swing',
step: function (now) {
$(this).text(Math.ceil(now));
if(Math.ceil(now) === 600){
$(this).stop(true, true);
}
}
});
});
}

});
#counter{
margin-top: 100vh;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Counter</title>
</head>
<body>
<p>scroll to view the counter</p>
<div id="counter">
<div><span class="count">600</span></div>
</div>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>

</body>
</html>

这是上面代码片段的 jsbin https://jsbin.com/dejeji/edit?html,js,output

关于javascript - jQuery 计数函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47718445/

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