我得到了这个网站,其中有5块,每个人都有视口大小,100%宽度和100%的高度。所以当页面加载时,你可以看到第一个。其他的在它下面。然后,当您向下滚动时,您会看到第二个,然后是第三个,依此类推,直到您到达最后一个所在页面的末尾。我在想,是否有办法强制页面滚动而不是默认的线性方式。我希望用户直接看到第二个区块(当然,不是直接的,但是有动画,如果可能的话),而不是看到两个区块之间的路。这些块就像不同的页面,并且没有点击任何地方(因为这对我来说是最简单的(并且是atm唯一的)方式),我想逐页移动,只是滚动。那可能吗?谢谢!jQuery - 滚动时控制页面
编辑:
我尝试使用scrollTo插件,但我无法弄清楚任。 让我们考虑用户向下滚动以便更容易。 这是我做过什么:
var tempScrollTop, currentScrollTop = 0; // 2 vars to check if user scrolls down
var isScrolling = false;
var nextPage = 2 // I'm on 1st page, I want to show page 2 when user scrolls down;
$(window).scroll(function(){
currentScrollTop = $(window).scrollTop(); // current position
if (tempScrollTop < currentScrollTop && ! isScrolling){ // if user scrolls down
isScrolling = true; // animation in progress, shouldn't get into this 'if' till finished
$(window).scrollTo('section#page-' + nextPage, 1000, {
onAfter: function(){ isScrolling = false; nextPage++; }
});
}
tempScrollTop = currentScrollTop; // update the current position
});
的“如果”语句检查,如果用户向下滚动。 从技术上讲,它应该可以工作,但是在向我展示我想要的页面之后,他只是进入下一个,然后是后一个,并且它一直向下滚动直到结束!做了一些测试,我发现应该在EVERY SINGLE动画之后执行的代码(这意味着一个整页滚动)随机执行。我的意思是,isScrolling = false不会发生,而nextPage ++会这样做,这就是它继续滚动的原因(事实上它会进入下一页)。它不应该在动画完成后执行此操作,而应该在它正在进行时进行?我很困惑..
有点像Acrobat Reader在将其设置为非连续模式时的工作方式? – Barmar
默认情况下隐藏块,除了第一个。当用户滚动块的高度时,显示下一个块。如果你愿意,你可以将它制作成动画。不知道这是你在说什么... – donutdan4114
@Barmar种,但有点不同因为我仍然希望滚动时的动画,但到达网页时停止。 – joeguarino