2016-12-02 9 views
0

私のサイトのページには水平スクロールがあり、ページ全体に垂直スクロールがあります。特定のセクションにポインタがあると、ページの垂直スクロールが停止し、私はこのために関数を使用しました。 どうすれば、そのセクションの水平スクロールが終わりに達したときにセクションがスクロールし、Webページのスクロールが開始されるようにその関数を設定できますか? これをどのように達成できますか? 私は、セクションの水平スクロールのための次の関数を使用している: -セクションの水平スクロールを停止し、ページの垂直スクロールを開始します

(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の幅をスクロール距離に追加することを忘れないでください。 2つが等しい場合、スクロールはdivの最後に到達しました。その時点でスクロール機能で継続的にチェックされるべきフラグを設定します。フラグはdivがスクロールするかページを決定するかを決定します。

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


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

divがウィンドウより大きい場合にのみ動作します。そうでない場合は$( "#mycontainer")で$(window).width()を変更する必要がありますwidth あなたのページがどのように見えるかはわかりませんが、好き。

+0

この「あなたのコードはここに」私のスクロール機能を置くべきですか? –

+0

mhh、私はあなたが私のことをあなたのものに追加することであなたの条件を変えることができると思います。(あなたのもの)&(私))私はちょうどここでそれを理解しようとしています。この人を途中で見てみるべきです:http://jsfiddle.net/nick_craver/gWD66/ –

関連する問題