Détecter la fin de défilement horizontal div avec jQuery
Donc, j'ai quelques données jeté dans une div. Il est divisé en morceaux par jour. Il défile horizontalement avec l'utilisation de jQuery et de la roulette de la souris plugin.
J'ai besoin de mettre le feu à un événement lorsque la div a atteint son point terminal (au plus loin à gauche, le plus loin à droite). Je pense que c'est possible avec la manière dont il est actuellement mis en œuvre pour calculer lorsque vous ne pouvez pas faire défiler toute en détectant les données extraites dans la roulette de la souris plugin. J'ai juste besoin d'un coup de pouce dans la bonne direction. Voici le code qui ne le défilement horizontal pour moi:
$(document).ready(function () {
$('#timeline').mousedown(function (event) {
$(this)
.data('down', true)
.data('x', event.clientX)
.data('scrollLeft', this.scrollLeft);
return false;
}).mouseup(function (event) {
$(this).data('down', false);
}).mousemove(function (event) {
if ($(this).data('down') == true) {
this.scrollLeft = $(this).data('scrollLeft') + $(this).data('x') - event.clientX;
}
}).mousewheel(function (event, delta) {
this.scrollLeft -= (delta * 30);
}).css({
'overflow' : 'hidden',
'cursor' : '-moz-grab'
});
});
Quelqu'un peut-il me donner quelques conseils? Merci!
overflow-x:scroll
ça va défiler horizontalement sans le hack. Je devine qu'il y a quelque chose qui vous empêche de le faire?J'utilise un plugin qui donne l'effet de défilement horizontale sans les barres de défilement. C'est comme se regarder dans une fenêtre et de voir ce qui passe devant elle et rien d'autre.
OriginalL'auteur jmorhardt | 2011-05-11
Vous devez vous connecter pour publier un commentaire.
Hey, j'ai préparé une page pour vous, avec la mise en œuvre. Vous pouvez voir comment détecter la fin de la zone de défilement avec jQuery.
Pour l'ensemble du document, vous devez détecter en javascript si
.scrollTop
est devenu égal à.scrollHeight
. Avec jQuery, il serait à détecter:L'on fait de même pour la largeur. Jetez un oeil sur l'exemple avec
div
ici.Est-il un moyen de limiter les cas de tir? J'aimerais qu'il incendie la première fois que vous faites défiler jusqu'à elle et de ne jamais recommencer. Des idées?
Jamais l'esprit - je viens d'ajouter une classe à l'objet lorsqu'il déclenche l'événement. Puis-je vérifier pour voir si il a la classe pour décider si l'événement doit se déclencher à nouveau. Est-ce que sembler comme une bonne solution?
Aussi, cela fonctionne très bien pour l'extrême gauche de la div, mais qu'en est la droite?
Pour la partie droite jouent avec le même vars. Ce sont les seuls de défilement liées à des variables que vous pouvez utiliser. La solution avec la classe est ok, mais vous pouvez utiliser
.data
pour stocker des variables et de vérifier, de cette façon seront cachés par les consommateurs 🙂OriginalL'auteur Arman P.
Voici le code que vous voulez.
Il s'est avéré que les travaux sur IE, Safari, Chrome, Firefox, etc.
Ici est la partie HTML.
Ici jQuery est partie dans des fonctions JavaScript.
OriginalL'auteur NOTSermsak
OriginalL'auteur Sandhu