【问题标题】:Simple snap scrolling implementation简单的快照滚动实现
【发布时间】:2017-12-30 02:32:07
【问题描述】:

小伙子们好。谁能指导我在以下网站上实现像这样的快速滚动的一般方法 - http://fantasy.co/https://www.ramotion.com/

通常我想知道的是如何监听滚动事件并滚动到页面上的锚点或元素,例如可以从这些站点看到的。我尝试过在线搜索,但所有教程似乎都是在单击锚链接时执行此操作,而我想在滚动时实现此操作。有谁能帮忙吗?

【问题讨论】:

  • 你也许可以使用 fullPage.js 之类的东西来实现这样的效果:alvarotrigo.com/fullPage
  • @Derek Hopper 谢谢。有趣的是,我在发布这个问题后才发现。卷轴劫持似乎被严重反对。你认为这是为什么?
  • 可能有很多不同的意见,所以不要把我的意见当作福音或任何东西。滚动劫持,就像人们在那里推出的许多其他效果或设计一样,是很棘手的。以正确的方式使用效果和完全混淆用户之间有一条很好的界限。通常,普通用户并不真正关心您在网站上放置的效果。他们只是想读一篇文章或完成一些事情,对吧?
  • 是的。我明白你的意思了。无论如何,我只是将其用于学习目的。会看看情况如何。再次感谢。

标签: jquery scroll scrollview anchor


【解决方案1】:

好吧,既然你已经用 jquery 标记了你的问题并询问了大致的方向,我会说探索

jquery(window).scroll(function(){
    // handle scrolling here
});

其他需要注意的是:

  • 您可能需要获取当前滚动位置的方法(请参阅window.scrollYdocument.documentElement.scrollTop
  • 要找出滚动方向,您可以创建一个prevScrollPosition 变量并将其与滚动的当前位置进行比较(并在滚动处理程序的末尾更新它)
  • 了解元素的 .offsetParent.offsetHeight.offsetTop 属性,以计算滚动到的理想位置
  • 还可以学习 window.scrollTo 方法以操作滚动

棘手的事情是让你滚动平滑(如果你将捕捉实现为即时滚动到某个位置,它会相当混乱,所以你必须考虑加速和减速)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-17
    • 2023-02-25
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 2012-03-26
    • 2015-08-30
    • 1970-01-01
    相关资源
    最近更新 更多