永久滚动更改代码

时间:2014-08-28 11:46:41

标签: javascript jquery scroll

当我滚动到:

时,我正试图让一段代码只执行一次
$('#main_nav').addClass('past-scrollpoint');
$('#content-block').addClass('past-scrollpoint-content');
$('#header').addClass('hidden');

但是,一旦该点小于740,代码似乎处于非活动状态。

这是我最好的尝试:

$(window).on('scroll', function()
{
  var initial = 0;
  stop = Math.round($(window).scrollTop());
  if (initial < 1)
  {
    if (stop > 740)
    {
      initial = initial + 1;
      $('#main_nav').addClass('past-scrollpoint');
      $('#content-block').addClass('past-scrollpoint-content');
      $('#header').addClass('hidden');
    }
  }
);

2 个答案:

答案 0 :(得分:4)

不确定,但我认为你每次都要覆盖初始变量。使用全局变量。

var initial = 0;
$(window).on('scroll', function()
{
  stop = Math.round($(window).scrollTop());
  if (initial < 1)
  {
    if (stop > 740)
    {
      initial = initial + 1;
      $('#main_nav').addClass('past-scrollpoint');
      $('#content-block').addClass('past-scrollpoint-content');
      $('#header').addClass('hidden');
    }
  }
);

答案 1 :(得分:1)

您希望这段代码在滚动到740或更多时只执行一次?为此,我认为你的代码很好。你只需要做一些修改: -

$(window).on('scroll', function(){

var initial = 0;
while(initial<1)
{
stop = Math.round($(window).scrollTop());

if (stop >= 740)
 {      
  $('#main_nav').addClass('past-scrollpoint');
  $('#content-block').addClass('past-scrollpoint-content');
  $('#header').addClass('hidden');
  initial = initial + 1;
 }
}
});

希望这会有所帮助!!