J'ai essayé différents plugins mais ils avaient tous des problèmes pour déclencher plusieurs événements dans mvc, j'ai donc trouvé cette solution en utilisant underscore.js
<script type="text/javascript">
$(document).ready(function () {
var isc = _.throttle(function (event) {
if ($(window).scrollTop() + $(window).height() > $(document).height() - 200) {
if (event.handled !== true) {
$.post('@path', function (html) {
$('#user-feed').append(html);
});
}
}
}, 300);
$(window).scroll(isc);
});
</script>
Si vous écoutez faire défiler les événements sur le nœud, vous pouvez facilement utiliser un plugin comme scrollTo pour faire défiler en douceur jusqu'au "div suivant" ou au div précédent (quelle que soit la manière dont vous le définissez).
var prevScrollTop = 0;
var $scrollDiv = $('div#content');
var $currentDiv = $scrollDiv.children('div:first-child');
$scrollDiv.scroll(function(eventObj)
{
var curScrollTop = $scrollDiv.scrollTop();
if (prevScrollTop < curScrollTop)
{
// Scrolling down:
$currentDiv = $currentDiv.next().scrollTo();
}
else if (prevScrollTop > curScrollTop)
{
// Scrolling up:
$currentDiv = $currentDiv.prev().scrollTo();
}
prevScrollTop = curScrollTop;
});
J'ai essayé différents plugins mais ils avaient tous des problèmes pour déclencher plusieurs événements dans mvc, j'ai donc trouvé cette solution en utilisant underscore.js
Si vous écoutez faire défiler les événements sur le nœud, vous pouvez facilement utiliser un plugin comme scrollTo pour faire défiler en douceur jusqu'au "div suivant" ou au div précédent (quelle que soit la manière dont vous le définissez).