2014-08-28 82 views
1

我试图得到一段代码只执行一次,当滚动到:上滚动更改代码永久

$('#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'); 
    } 
    } 
); 

回答

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; 
} 
} 
}); 

希望这会有所帮助!

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'); 
    } 
    } 
);