Javascript 带有scrolltop的If语句不起作用
我试图使动画发生一旦网页是在网页的某一部分。我看过其他人的问题,我的问题与之类似,但它不起作用 代码如下:Javascript 带有scrolltop的If语句不起作用,javascript,jquery,Javascript,Jquery,我试图使动画发生一旦网页是在网页的某一部分。我看过其他人的问题,我的问题与之类似,但它不起作用 代码如下: if($('html,body').scrollTop() > 400) { $('.fish_one').animate({"margin-left":"+=65%"},1000); $('.fish_two').animate({"margin-left":"-=10%"},1000); $('.left').animate({"opacity":"+=1"
if($('html,body').scrollTop() > 400) {
$('.fish_one').animate({"margin-left":"+=65%"},1000);
$('.fish_two').animate({"margin-left":"-=10%"},1000);
$('.left').animate({"opacity":"+=1"},1000);
$('header').css({"background-color":"#fff"});
$('header a').css({"color":"#94d9f8"});
}您需要在每次页面滚动时检查if语句,而不仅仅是在加载时。使用$(窗口)。滚动(函数(){ 编辑:要防止函数自身重复,请执行以下操作:
var pos = false;
$(window).scroll(function(){
if(($(window).scrollTop() > 400) !== pos ){
alert("changed");
}
pos = $(window).scrollTop() > 400;
});
或
尝试将其添加到事件侦听器,如下所示:
var eventTriggered=false;
$(document).on( 'scroll', function(){
if($(document).scrollTop() > 400 && !eventTriggered) {
alert("success");
eventTriggered=true;
}else if($(document).scrollTop() < 400){
eventTriggered=false;
}
});
var eventTriggered=false;
$(文档).on('scroll',function(){
if($(document).scrollTop()>400&!事件已触发){
警惕(“成功”);
eventTriggered=true;
}else if($(文档).scrollTop()<400){
eventTriggered=false;
}
});
这一个可以工作,它确实可以工作事件侦听器,但函数会重复自身,例如,它将执行边距部分none stop。它仍然不工作。它将我重定向回页面顶部。
var pos = false;
$(window).scroll(function(){
if(($(window).scrollTop() > 400) && !pos ){
alert("just passed breakpoint");
}
pos = $(window).scrollTop() > 400;
});
var eventTriggered=false;
$(document).on( 'scroll', function(){
if($(document).scrollTop() > 400 && !eventTriggered) {
alert("success");
eventTriggered=true;
}else if($(document).scrollTop() < 400){
eventTriggered=false;
}
});