2012-11-21 4 views
6

Ich möchte unendlich scrollen implementieren. Unten ist eine kurze Form meines Layouts. Da ich einige Elemente relativ positioniert habe, wird das JavaScript-Scroll-Ereignis nicht ausgelöst.Wie scrollevent erfassen?

Wie kann ich dieses Problem beheben, um das Scroll-Ereignis ausgelöst zu bekommen und das unendliche Scrollen zu implementieren?

Mein Haupt Layout ist:

<div id="container"> 
    <div class="wrapper"> 
     <div id="header"> 
     ... 
     </div> <%-- header --%> 

     <div id="main"> 
     ... 
     </div> 

    </div> <%-- wrapper --%> 
</div> <%-- container --%> 
<div id="footer"> 
</div> 

Und mein CSS ist:

#container { 
    position: absolute; 
    z-index: 1; 
    top: 0; 
    bottom: 35px; 
    left: 0; 
    right: 0; 
    overflow-y: auto;  
    overflow-x: hidden;  
} 

.wrapper { 
    margin: 0 auto; 
    width: 960px; 
    position: relative; 
} 

#header { 
    position: relative; 
} 

#main { 
} 

#footer { 
    z-index: 2; 
    position: absolute; 
    bottom: 0; 
    left: 0; 
    right: 0; 
    height: 35px; 
} 

Was muss ich so ändern, dass ich den Browser Scroll-Ereignis mit meinem Layout empfangen kann unendliche Scrollen zu implementieren ?

+0

Hope this Hilfe http://stackoverflow.com/questions/2710568/css-achieving-two-way-infinite-scroll-with-mouse-drag –

Antwort

10

Der korrekte Weg, es zu implementieren ist:

<div id="container" onscroll="Onscrollfnction();"> 

<script> 
function Onscrollfnction() { 
     alert("scroll"); 
    }; 
</script> 
+3

-1 für die Nutzung der Leistung von jQuery, um die Verwendung von Inline-JavaScript zu vermeiden. Ich verstehe auch nicht, was das mit "unendlichem" Scrollen zu tun hat. – Sparky

+0

so können Sie eine bessere Lösung bieten? – confile

+2

Ja, jede funktionierende Antwort ohne Inline-JavaScript wäre besser. – Sparky

3

Dies ist, was ich in meinem Code verwendet ...

<div id="DataDiv" style="overflow: auto; width: 280px; height:400px; margin-top: 10px;" 
        onscroll="Onscrollfnction();"> 
     my content here 
</div> 

Funktion ist als unten

function Onscrollfnction() { 
      var div = document.getElementById('DataDiv'); 
      div.scrollLeft; 
      return false; 
     }; 

Nach Inhalt Kreuzung 400px, beginnt Scrollen und wird unendlich sein .. genießen

+0

Aber wie kann ich garantieren, dass die Fußzeile ist immer unten mit verschiedenen Bildschirmgrößen? An welcher Stelle sollte ich Ihren Code eingeben? – confile

6

EDIT: Da hat Sie Ihre Frage mit ...


Ihre Scroll-Ereignis ausgelöst jQuery ...

HTML:

<div id="container"> 
    CONTENT 
</div> 

jQuery:

$(document).ready(function() { 

    $('#container').scroll(function() { 
     alert('scroll'); 
     // presumably your infinite scrolling code here 
    }); 

}); 

See: http://api.jquery.com/scroll/