jquery - 滚动时出现问题 - 不会完全禁用滚动

标签 jquery html css scroll

我试图重新创建一个滚动行为,滚动被禁用,直到动画直接滚动到给定的点。类似于 http://alvarotrigo.com/fullPage/ 的东西(行为),但我不想做整页滚动,而不是我希望滚动到网站的特定位置。

JS:

$(document).on("ready", function(){
  //Keep track of last scroll
  var lastScroll = 0;
  var scrollBlock = false;
  var myIndex = 0;
  var myPositions = [0,1000,2000,3000];


  $(window).scroll(function(event){
      console.log(scrollBlock);
      if(scrollBlock == false){
        scrollBlock = true;
        event.preventDefault();

        //Sets the current scroll position
        var st = $(this).scrollTop();
        //Determines up-or-down scrolling
        if (st > lastScroll){

           console.log("DOWN");
          $('body, html').animate({scrollTop: myPositions[myIndex+1]+'px'}, 2000, function(){
            console.log(myPositions[myIndex]);
            setTimeout(function(){
              console.log(st);
              lastScroll = $(window).scrollTop();
              scrollBlock = false;
             },200);
          });
           myIndex++;

        }
        else {

           console.log("UP");
          $('body, html').animate({scrollTop: myPositions[myIndex-1]+'px'}, 2000, function(){
            console.log(myPositions[myIndex]);
            setTimeout(function(){
              console.log(st);
              lastScroll = $(window).scrollTop();
              scrollBlock = false;
              //console.log(scrollBlock);
             },200);
          });
           myIndex--;
        }
        //Updates scroll position              
      }

  });
});

CSS:

body{height: 3000px; margin:0px}
.section{position: relative; overflow: hidden; height: 1000px}
.section1{background: red}
.section2{background: blue}
.section3{background: green}

HTML

<div class="section section1">Section 1</div>
<div class="section section2">Section 2</div>
<div class="section section3">Section 3</div>

这是codepen - http://codepen.io/anon/pen/bqpxf .

该脚本确定您是否向上/向下滚动。一旦触发滚动,默认的滚动行为应该停止,主体将滚动到特定部分。现在滚动有点“抖动”

你能帮我吗?

非常感谢

最佳答案

这是我为另一个关于滚动的问题做的例子,这里只有 2 个部分,但可能会有所帮助:

http://jsfiddle.net/zB5bc/8/

我正在使用:

body{
    overflow:hidden;
}

关于jquery - 滚动时出现问题 - 不会完全禁用滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26360989/

相关文章:

javascript - Jquery 代码在初始页面加载时选中复选框时显示链接

javascript - 自定义 JQuery 延迟处理程序

html - 如何在 div 中显示内联链接而不跨越另一行?

php - 简单的 HTML DOM 空间转换类

jquery - float left div 中相对定位的元素

javascript - 如何在Jquery中的toggleClass函数中添加动画

javascript - Accordion 中的鼠标悬停和鼠标移出

javascript - 如何避免文本框中出现空值

html - 我如何使用 :valid and :invalid selectors for css?

html - 避免带有 float 元素网格的空白空间