如何实现类似于百利宫网站的滚动效果
How to achieve a scrolling effect similar to the Paragon site
我不知道这个滚动效果叫什么所以不知道如何搜索我的答案,我在源代码中找不到它。负责 Paragon 滚动效果的代码是什么,滚动将导致页面向下滚动到我假设的下一个div。或下降一定高度。
我拼凑了一个CodePen。它没有动画,但解释了一般机制(Paragon网站的做法不同,但开始以下内容可能更适合)。
核心部分是这样的:
window.onwheel = function ( e ) {
e.preventDefault();
var wDelta = e.deltaY > 0 ? 'down' : 'up';
if (wDelta === "down") {
// scroll Down
} else {
// scroll Up
}
}
要知道在哪里滚动,我们当然需要知道我们在哪里。有几种方法可以做到这一点。我所做的是检查viewport
的当前top
与其height
var offset = window.pageYOffset,
viewportHeight = document.documentElement.clientHeight;
switch (parseInt(offset/viewportHeight,0)) {
case 0:
// we are in the first viewport
break;
case 1:
// we are in the second viewport
break;
...
}
我刚刚检查了它的功能。性能方面,可以改进。您还应该绑定keydown
(以捕获pageUp
、pageDown
、space
等),但它可以用类似的方式完成。为了确保向后兼容性,您需要扩展代码(例如,绑定到 onmousewheel
事件)。但这将为您提供一个开始的地方。
附言
还要考虑重新加载页面时您想要的行为(如果用户在viewports
之间重新加载,它将保留在他们之间,直到发生另一个scroll
)。
这个答案也可能让你感兴趣。
相关文章:
- 在向下滚动JS/HTML/CSS wordpress网站时替换徽标图像
- "此网站似乎使用滚动链接定位效果.这可能不能很好地与异步平移一起工作;
- 网站跟随鼠标滚动
- 像谷歌一样更改滚动网站
- 网站水平滚动,但单独的页面
- 我如何从一个无限滚动的网站抓取图像,其中api是隐藏的,我无法通过使用Inspect Element获得它->网络
- 我想要一个类似于网站 https://onlycoin.com/ 的jQuery鼠标滚动动画效果
- 每次我按下按钮时,网站都会向上滚动
- 在用户滚动时加载单个页面网站的不同部分
- 有没有可能使网站水平和垂直滚动
- 单页,滚动网站与固定的动态页脚
- 为网站滚动添加效果
- 新颂网站 - 滚动时从一个背景图像平滑过渡到下一个背景图像
- 如何使网站滚动背景不移动和工具栏自动最小化
- 启用/禁用iPhone/iPad的滚动,但启用网站滚动
- Nexus 5网站-滚动滑块内的设备-如何做到这一点
- 移动版网站滚动缓慢
- 防止网站滚动的Jquery功能
- 移动网站滚动问题
- 网站滚动问题