2016-12-02 48 views
0

我在我的網站頁面有div水平滾動和整個頁面有垂直滾動。當指針是在特定部分停止垂直滾動頁面,並開始部分水平滾動。我爲此使用了一個函數。 我該如何設置該功能,以便該部分的水平滾動到達其末端時,滾動關閉部分和網頁滾動部分開始。 我怎樣才能做到這一點? 我已經使用下面的函數對部分的水平滾動: -停止水平滾動的部分和開始頁面垂直滾動

(function() { 
    function scrollHorizontally(e) { 
     e = window.event || e; 
     var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail))); 
     document.getElementById('myDIV').scrollLeft -= (delta*40); // Multiplied by 40 
     e.preventDefault(); 
    } 
    if (document.getElementById('myDIV').addEventListener) { 
     // IE9, Chrome, Safari, Opera 
     document.getElementById('myDIV').addEventListener("mousewheel", scrollHorizontally, false); 
     // Firefox 
     document.getElementById('myDIV').addEventListener("DOMMouseScroll", scrollHorizontally, false); 
    } else { 
     // IE 6/7/8 
     document.getElementById('myDIV').attachEvent("onmousewheel", scrollHorizontally); 
    } 
})(); 

回答

0

測量與所述水平滾動所述div的寬度,並將其與使用jQuery's .scrollLeft()水平滾動距離。請記住將div的寬度添加到滾動距離。當兩者相等時,滾動達到div的結尾。在這一點上設置一個標誌,應該在你的滾動功能中連續檢查 - 標誌可以確定div是否應該滾動或頁面。

0
$(window).scroll(function() { 


    if($("#yourdiv").scrollLeft() + $(window).width() == $("#yourdiv").width()) { 
    Your code here 
    } 
}); 

它應該工作,但只有當你的DIV比窗口大。如果不是,你應該改變$(window).width()by $(「#mycontainer」)。寬度 希望它能爲你工作,爲我工作幾乎類似的情況,但我不知道你的頁面看起來如何喜歡。

+0

我應該在這個「你的代碼在這裏」我的滾動功能? –

+0

mhh,我想你可以改變你的if語句的條件,如果(你的)&(我的))加入我的你的條件,我不能運行測試,所以我只是想從這裏抱歉。你應該試着順便看看這個人:http://jsfiddle.net/nick_craver/gWD66/ –