javascript - 如何将 'lock' 滚动到 div?

标签 javascript jquery css html

我已经建立了一个滚动网站(本质上是一个视差样式的页面,没有视差效果),其中每个“页面”只是一个占据 100% 屏幕的 div。但我需要某种机制来将滚动“锁定”到正确的位置,以便 div 将与用户的浏览器正确对齐。

如果您需要一个示例,Flickr 的醒目页面可以完美地做到这一点。

谢谢。

编辑:这是我正在处理的网站的链接。代码有点乱,有些图片没有加载(因为它们还没有托管),但它可以让您大致了解网站的运作方式。 http://fiddle.jshell.net/99QjJ/

最佳答案

我只是试图构建一个快速解决方案:Fiddle

它阻止了正常的滚动并只滚动到 div 的适当偏移量:

if(!scrolling) {
    scrolling = true;
    currentDiv = (scrollDirection == "down" ? currentDiv + 1 : currentDiv - 1)
    $("html,body").animate({
        "scrollTop":offsets[currentDiv]
    },{queue:true,duration:1000,complete:function() {
        window.setTimeout(function() {
             scrolling = false;
         },200);
    }});

这不是完整的解决方案,但我认为这会奏效。 另一个想法是使用数以千计的 jQuery 插件之一,通过箭头键使页面可滚动。我认为,如果每个 div 都适合整个屏幕尺寸,则实际上没有必要在“中间”滚动。

关于javascript - 如何将 'lock' 滚动到 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24843962/

相关文章:

javascript - 为什么这个 BootStrap Accordion 示例不能在我的页面上运行?

javascript - 通过 Jquery 或 knockout js 获取空 div 中的 html 元素

javascript - 样式化或替换标准选择元素

html - 尝试使用独特的超赞字体图标定位每个链接

javascript - 在没有 JS 库的情况下为 <canvas> 上的 spritesheet 设置动画

javascript - 运行正则表达式替换,同时忽略(但保留)某个字符

javascript - 我们如何删除 keyup 上的自定义有效性消息?

javascript - 单击按钮切换大小写

javascript - 使用字符串访问数组中的对象

javascript - 对象内部的循环数组