2012-12-05 81 views
2

我的網站上有6個div,每個div的瀏覽器窗口的高度和寬度相同,因此5個視圖,3個左對齊,3個頂部,因此....在錨點上更改滾動方向

enter image description here

當我的訪問者滾動,ID喜歡一起到第三格滾動,然後向上滾動到第4位,然後繼續水平滾動。這可能與jQuery,如果是的話,它是如何做到的?

回答

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

+0

@Liam是你的問題回答了?然後將其標記爲原樣! – yckart