javascript - 一旦用户到达页面上的特定点,自动滚动到特定点/ anchor

标签 javascript html css

所以,这里是:

我将有 4 个 div。下面的例子。每个 div 都有一个特定的高度(大约 1500 像素),但宽度为 100%。每个 div 都是不同的颜色。

我想要它,以便当用户滚动页面并到达特定点时,javascript 将启动并自动将用户滚动到下一个 div。

因此,假设用户垂直滚动并且出现 div #2 而 div #1 正在消失。当 div #1 还剩下大约 200px 时,页面将自动向下滚动,以便 div #2 与浏览器窗口的顶部齐平。

一个很好的例子:http://thejuly16.com/基本上可以做到,但不知道如何做。


1

内容在这里


2

内容在这里


3

内容在这里


4

内容在这里


最佳答案

那个页面对我没有任何作用:/

无论如何,如果我明白你的意思,你应该在每个 div 的顶部有一些 anchor ,将一些代码挂接到滚动事件,检查它的 scrollTop() 值,然后滚动到当此值在所需范围内时锚定。你可以查看this fiddle以及相关的 jQuery 代码:

$(window).bind('scroll', function(){
    if (($(window).scrollTop() > 1300) && ($(window).scrollTop() < 1350)) {
        window.scrollTo(0,1500);
    }
});

这对用户来说可能是一种奇怪的行为,因为向上滚动非常困惑。但是,我们可以通过检查用户在页面中是向上还是向下来解决这个问题,例如 this fiddle。 , 只是检查最后一个滚动位置是高于还是低于当前滚动位置:

var currentScroll = 0;
var previousScroll = 0;

$(window).bind('scroll', function(){
    currentScroll = $(window).scrollTop();
    if (($(window).scrollTop() > 1300) && ($(window).scrollTop() < 1350) && currentScroll > previousScroll) {
        window.scrollTo(0,1500);
    }
    previousScroll = $(window).scrollTop();
});

显然,您需要在页面中添加与“跳转”一样多的 if 语句。

关于javascript - 一旦用户到达页面上的特定点,自动滚动到特定点/ anchor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8208356/

相关文章:

javascript - 在 jCarousel 中的所有可见图像上触发 Javascript 函数

javascript - 在 componentWillUpdate 或 componentDidUpdate 中重复调用 setState?

java - Android:Html TextView - 这可能吗?

html - 如何居中多个 HTML UL 列表

javascript - 通过 Javascript 将图像切割成碎片

javascript - 将 CSS 属性打印到 HTML

c# - 将形状文件转换为 kmz 文件的 ASP .NET 代码

javascript - 任意切换 DOM 元素位置

jQuery 滚动标题效果

javascript - zoom : browser renders a space gap between containers while zooming, 上有趣的 Css 渲染问题出现在每个浏览器中,但不会出现在 Firefox 中