Maison > Questions et réponses > le corps du texte
J'ai actuellement une page sous la forme suivante
<div id="content"> <div id="content-page-1"> <!--content--> </div> <div id="content-page-2"> <!--content--> </div> </div>
Y a-t-il un moyen de faire défiler
Utilisez jquery ?
P粉4574458582023-11-02 17:19:57
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>
P粉2760641782023-11-02 16:14:55
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; });