2011-03-10 58 views
0

我可以在下面的代碼中添加什麼以使#top在滾動到頂部後消失?使元素在scrollTop後消失

$(document).ready(function() { 
    $('#top').hide(); 
     $(window).scroll(function() { 
      $('#top').fadeIn(3500); 
     }); 
     $('#top').click(function(){ 
      $('html, body').animate({scrollTop:0}, 'fast'); 
      return false; 
    }); 
}); 

回答

2

回調到您的通話添加到animate()

$(document).ready(function() { 
    var topClicked = false; 
    $('#top').hide(); 
     $(window).scroll(function() { 
      if (!topClicked) { 
       $('#top').fadeIn(3500); 
      } 
     }); 
     $('#top').click(function(){ 
      topClicked = true; 
      $('html, body').animate({scrollTop:0}, 'fast', function() { 
       $("#top").hide(); 
      }); 
      return false; 
    }); 
}); 

更新:還增加了一個變量,顯示#top元素,所以它不會出現之前的滾動處理程序檢查再次點擊後再次顯示。這裏有一個例子:http://jsfiddle.net/eunX3/1/

更新2:如果你想淡出元素了,這裏是一個演示一個例子:http://jsfiddle.net/eunX3/2/

更新3:這裏是你如何使這項工作不止一次:

$(document).ready(function() { 
    var topClicked = false; 
    $('#top').hide(); 
     $(window).scroll(function() { 
      if (!topClicked && $(this).scrollTop() > 0) { 
       $('#top').fadeIn(3500); 
      } 
     }); 
     $('#top').click(function(){ 
      topClicked = true; 
      $('html, body').animate({ scrollTop:0 }, 'fast', function() { 
       $("#top").hide(); 
       topClicked = false; 
      }); 
      return false; 
    }); 
}); 

這裏有一個工作示例:http://jsfiddle.net/eunX3/4/

+0

如果我想#top返回到淡出,在結束了嗎?我試着改變.hide(); .fadeOut(1000);但是這使得元素在淡出之前再次消失。 – 585connor 2011-03-10 00:37:57

+0

@ 585connor:我會更新示例:) – 2011-03-10 00:59:05

+0

@ 585connor:這應該工作;看到我的更新。 – 2011-03-10 01:01:05