我有两个职能。第一个检查页面滚动时元素是否在视图内。第二个用于计算滚动顶部,如果第一个函数为true,则当该元素处于可见状态时,它将把该元素的scrollTop设置为0。
我要完成此任务的解决方案是启动一个单独的计数器,该计数器仅在元素处于可见状态时才激活,但是我在制作工作计数器时遇到了麻烦。现在,i
的值将停留在1
。以下是我的代码,感谢您的任何投入。
var img = $('.banner_img_desktop').find('img');
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));
}
$(window).scroll(function() {
var scrollTop = $(window).scrollTop();
var i = 0; // <-- my counter
if (isScrolledIntoView(img)) {
i = i + 1;
var elemScroll = i;
var imgPos = (elemScroll / 8) + 'px';
img.css('transform', 'translateY(' + imgPos + ')');
}
});
答案 0 :(得分:0)
按照@GrafiCode Studios的建议!变量i
的范围是scroll
函数的局部变量,我想将其用作全局变量!解决方案是在scroll
函数外部声明它!