Suche jQuery Event ausgelöst bei Seitenende?
Eric
- javascript
Hallo zusammen,
ich bin auf der Suche nach einem jQuery Event, das ausgelöst wird, wenn die Seite mit dem Scrollen das Ende erreicht hat... oder als Alternative eben beim Erreichen (?) eines gegebenen Containers (mit einer ID).
Erreichen möchte ich Folgendes, wie auf dieser Siete (http://api.jquery.com/trigger/):
Nach dem Scrollen nach unten wird irgendein Event ausgelöst, der die DISQUS COMMENTS nachlädt.
Bin ich vielleicht mit meiner Herangehensweise auf dem Holzweg???
Nach langer erfolgloser Suche (hier im Forum und die Tante Google) habe ich zwar das Gefühl, dass dies ohne Weiteres nicht möglich ist, aber vlt. könnt ihr mich ja vom Gegenteil überzeugen?
Viele Grüße und Besten Dank,
Eric
Hi, Eric!
Mit dem folgenden Code (ungetestet, sollte aber klappen) kannst Du Dir so ein event leicht selbst bauen:
// prüfe bei jedem Scrollen
$(document).bind('scroll', function(){
// ist die Scrollhöhe entsprechend der Seitenhöhe minus Fensterhöhe (Ende erreicht)
if ($('document').height()-$(window).height() >= $(window).scrollTop()) {
// erzeuge ein künstliches "scrollend"-event auf window.
$(window).trigger('scrollend');
}
});
Du kannst dann mit $(window).bind('scrollend', callback)
das entsprechende Event bauen.
Gruß, LX
Hi LX,
danke für die schnelle Hilfe, ich schau mir deinen Hinweis an, konnte es aber - vlt. vorübergehend =) - mit einer Funktion und nen Container lösen:
<div id="post"></div>
<script type="text/javascript">
<!--
$(function(){
var bEventLoaded = false,
iTop = $("#post").offset().top;
function check(){
if ( !bEventLoaded && $(window).scrollTop() + $(window).height() > iTop ) {
bEventLoaded = true;
alert('Event geladen =) ');
}
}
$(window).scroll(check);
check();
});
-->
</script>
Danke und VG
Eric
Hi LX,
Mit dem folgenden Code (ungetestet, sollte aber klappen) kannst Du Dir so ein event leicht selbst bauen:
// prüfe bei jedem Scrollen
$(document).bind('scroll', function(){
// ist die Scrollhöhe entsprechend der Seitenhöhe minus Fensterhöhe (Ende erreicht)
if ($('document').height()-$(window).height() >=$(window).scrollTop()) {
// erzeuge ein künstliches "scrollend"-event auf window.
$(window).trigger('scrollend');
}
});Du kannst dann mit $(window).bind('scrollend', callback) das entsprechende Event bauen.
Ein kleiner Fehler war drin [nicht >=
sondern <=
] aber damit funktionierts blendend =)
Ach ja... und der IE (7) verstand $(document).bind
irgendwie nicht...
Folgendermaßen klappts aber (getestet in IE7 und Firefox):
$(window).bind('scroll', function(){
if ($(document).height()-$(window).height() <= $(window).scrollTop()) {
$(window).trigger('scrollend');
}
});
$(window).bind('scrollend', function(){
alert('Seitenende erreicht =)')
});
Nochmal DANKE!
VG
Eric