在锚点更改滚动方向

时间:2012-12-05 15:40:08

标签: javascript jquery

在我的网站上我有6个div,每个div与浏览器窗口的高度和宽度相同,因此5个不在视图中,3个左对齐,然后3个在顶部,因此....

enter image description here

当我的访客滚动时,id喜欢滚动到第3个div,然后向上滚动到第4个,然后继续水平滚动。这有可能与jQuery,如果是这样,它怎么办?

2 个答案:

答案 0 :(得分:2)

检查一下。它允许您向不同方向滚动并设置“幻灯片”,如上所述

http://joelb.me/scrollpath/

答案 1 :(得分:1)

简单(可能有帮助)并且不完美:

var win = $(window),
    doc = $(document),
    bodyH = doc.height() - win.height(),
    page4 = $('#page4');

win.scrollTop(bodyH);


$(document).on('DOMMouseScroll mousewheel', function(e, delta) {
    delta = delta || -e.originalEvent.detail / 3 || e.originalEvent.wheelDelta / 120;

    if(delta < 0) {
        if(win.scrollLeft() > page4.offset().left && win.scrollTop() !== 0) {
            win.scrollTop(win.scrollTop() + delta * 30);
        } else {
            win.scrollLeft(win.scrollLeft() - delta * 30);
        }
    } else {
        if(win.scrollLeft() < page4.offset().left && (win.scrollTop() > 0 || win.scrollTop() === 0) && win.scrollTop() !== bodyH) {
            win.scrollTop(win.scrollTop() + delta * 30);
        } else {
            win.scrollLeft(win.scrollLeft() - delta * 30);
        }
    }

    e.preventDefault();
});

<强> demo