Javascript jQuery scrollTop()问题

Javascript jQuery scrollTop()问题,javascript,jquery,css,Javascript,Jquery,Css,我正在努力做到这一点: 当点击按钮时,html将被设置为“欢迎”部分的动画,只有在该部分中溢出y才可见(因此,如果不按下按钮,则无法从标题向下滚动)。(这是第一个剧本)。 但是我对第二个脚本有问题。基本上是滚动并将文档固定在0px高度,不能向下滚动。我在这里试图实现的是,如果您从欢迎部分向后滚动,html将被动画化到页面顶部(以初始状态返回所有内容) $(窗口).ready(函数(){ $(“.scroll icon”)。单击(函数(){ $('html,body')。设置动画({ scroll

我正在努力做到这一点: 当点击按钮时,html将被设置为“欢迎”部分的动画,只有在该部分中溢出y才可见(因此,如果不按下按钮,则无法从标题向下滚动)。(这是第一个剧本)。 但是我对第二个脚本有问题。基本上是滚动并将文档固定在0px高度,不能向下滚动。我在这里试图实现的是,如果您从欢迎部分向后滚动,html将被动画化到页面顶部(以初始状态返回所有内容)

$(窗口).ready(函数(){
$(“.scroll icon”)。单击(函数(){
$('html,body')。设置动画({
scrollTop:$(“#欢迎”).offset().top
}, 2000); 
$(“html”).delay(200).queue(函数(下一个){
$(this.css)({
“溢出-y”:“可见”
}); 
next();
});
}); 
$(窗口)。滚动(函数(){
变量距离=$(“#欢迎”).offset().top
if($(文档).scrollTop()<距离){
$('html,body')。设置动画({
scrollTop:$(“#页眉”).offset().top
}, 2000);
} 
});
});
下面是一个JSFIDLE,它显示了我的问题:

感谢大家:)

我试过这个:

// 1. Use a flag to check when you're welcome to the party!.
window.ImWelcome = false;

// 2. Your event click handler -- Same
$(".scroll-icon").click(function() {

    $('html, body').animate({
        scrollTop: $("#welcome").offset().top
    }, 2000); 

});  

// 3. Scroll handler...
$(window).scroll(function() {

    // 3.1 Store the values 
    var distance  = $("#welcome").offset().top
    var scrollTop = $(document).scrollTop();

    // 3.2 So..? Did you arrive to the party already ?
      if(scrollTop == distance){
        window.ImWelcome = true; // 3.2.1 Oh Yeah! 
      }

      // 3.3 Hmmm ... Seems like you want to leave huh? Ok let me take you to home
      if ($(document).scrollTop() < distance && window.ImWelcome) {
         $('html, body').animate({
             scrollTop: $("#header").offset().top
         }, 2000);

         // Oh You're home and not welcomed 
         window.ImWelcome = false;
      } 

});
//1。当欢迎你参加聚会时,用旗子检查一下!。
window.ImWelcome=false;
// 2. 您的事件单击处理程序--相同
$(“.scroll icon”)。单击(函数(){
$('html,body')。设置动画({
scrollTop:$(“#欢迎”).offset().top
}, 2000); 
});  
// 3. 滚动处理程序。。。
$(窗口)。滚动(函数(){
//3.1存储值
变量距离=$(“#欢迎”).offset().top
var scrollTop=$(document.scrollTop();
//3.2那么……?你已经到派对了吗?
如果(滚动顶部==距离){
window.ImWelcome=true;//3.2.1哦,是的!
}
//3.3嗯…看来你想离开了,嗯?好吧,让我带你回家
if($(document.scrollTop()
现在,严肃地说,旗帜方法很简单。这使用了一个全局变量,因为它必须将状态保留在标志中


谢谢!你真是太好了,谢谢你的解释:)我有另一个问题。单击事件仅播放一次。因此,一旦回到顶部,滚动图标被重新勾选,什么也没有发生:\n当我发布答案时,我意识到了一个问题。现在我再次测试并编辑了它@soldierI不知道我有多感激你的帮助!:)一切都很顺利。非常感谢你Jeancarlo:)(我甚至学会了使用旗帜!)祝你有愉快的一天
// 1. Use a flag to check when you're welcome to the party!.
window.ImWelcome = false;

// 2. Your event click handler -- Same
$(".scroll-icon").click(function() {

    $('html, body').animate({
        scrollTop: $("#welcome").offset().top
    }, 2000); 

});  

// 3. Scroll handler...
$(window).scroll(function() {

    // 3.1 Store the values 
    var distance  = $("#welcome").offset().top
    var scrollTop = $(document).scrollTop();

    // 3.2 So..? Did you arrive to the party already ?
      if(scrollTop == distance){
        window.ImWelcome = true; // 3.2.1 Oh Yeah! 
      }

      // 3.3 Hmmm ... Seems like you want to leave huh? Ok let me take you to home
      if ($(document).scrollTop() < distance && window.ImWelcome) {
         $('html, body').animate({
             scrollTop: $("#header").offset().top
         }, 2000);

         // Oh You're home and not welcomed 
         window.ImWelcome = false;
      } 

});