$(window).scrollTop()计数器

时间:2019-05-31 08:49:01

标签: javascript jquery

我有两个职能。第一个检查页面滚动时元素是否在视图内。第二个用于计算滚动顶部,如果第一个函数为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 + ')');
  }
});

1 个答案:

答案 0 :(得分:0)

按照@GrafiCode Studios的建议!变量i的范围是scroll函数的局部变量,我想将其用作全局变量!解决方案是在scroll函数外部声明它!