Jor*_*rge 1 html javascript jquery counter jquery-animate
我有一个完美的简单 jQuery 代码(我想保留)。问题是这个动画在页面下面的一个部分中,它在页面加载时开始运行。我需要这个动画(数字从 0 开始并运行直到我放入 div 的数字)仅在用户滚动并到达该 div 时发生。我在谷歌和 StackOverflow 上搜索,但我发现的解决方案不起作用或需要插件(我不想使用)。
这是我目前拥有的演示代码:https : //jsfiddle.net/aj7Lk2bw/2/
jQuery 是:
$('.value').each(function () {
$(this).prop('Counter',0).animate({
Counter: $(this).text()
}, {
duration: 4000,
easing: 'swing',
step: function (now) {
$(this).text(Math.ceil(now));
}
});
});
Run Code Online (Sandbox Code Playgroud)
看看这是否是你想要的:https : //jsfiddle.net/aj7Lk2bw/19/
$(window).scroll(testScroll);
var viewed = false;
function isScrolledIntoView(elem) {
var docViewTop = $(window).scrollTop();
var docViewBottom = docViewTop + $(window).height();
var elemTop = $(elem).offset().top;
var elemBottom = elemTop + $(elem).height();
return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}
function testScroll() {
if (isScrolledIntoView($(".numbers")) && !viewed) {
viewed = true;
$('.value').each(function () {
$(this).prop('Counter',0).animate({
Counter: $(this).text()
}, {
duration: 4000,
easing: 'swing',
step: function (now) {
$(this).text(Math.ceil(now));
}
});
});
}
}
Run Code Online (Sandbox Code Playgroud)
在这里找到了这样做的方法:当 div 在浏览器窗口中可见时运行脚本
| 归档时间: |
|
| 查看次数: |
9511 次 |
| 最近记录: |