Horizontale de défilement avec la molette de la souris dans un div
Défilement horizontal dans na div avec la souris whell, ou faites glisser avec jquery?
J'ai essayé déplaçable, mais dans mon code, il n'est pas utile.
Maintenant, j'ai une barre de défilement horizontale. Est-il une possibilité de faire défiler le contenu de mon div avec la molette de la souris?
- Montrez-nous ce que vous avez essayé
Vous devez vous connecter pour publier un commentaire.
Essayez ceci pour le défilement horizontal avec la molette de la souris. C'est de la pure JavaScript:
Voici une démo, mais avec
document.body
etwindow
comme un élément ciblé: http://rawgit.com/tovic/dte-project/master/full-page-horizontal-scrolling.htmle.preventDefault();
avec cette instruction if:if((delta > 0 && document.getElementById('yourDiv').scrollLeft > 0) || (delta < 0 && document.getElementById('yourDiv').offsetWidth+document.getElementById('yourDiv').scrollLeft < el.scrollWidth))
(testé sur Chrome et Firefox)J'ai réécrit le code de la réponse par @Anonyme-de la Laitue. La largeur de recalcul de l'élément est ignoré car il est inutile et parfois indésirables.
Cela fournit également caractéristique supplémentaire de passer
scroll-amount
danspx
du plugin.L'utiliser comme ceci:
Voici la mise à jour du plugin
jquery.hscroll.js
:Ici est la version compacte de la même
jquery.hscroll.min.js
:A écrit ce plugin jours.
Essayer avec
La largeur de l'élément enfant de la div doit être plus large que le parent.
Comme 4000 px ou quelque chose.
Je voudrais ajouter une légère amélioration de la réponse donnée par @Taufik.
Dans le contexte d'une
es2015
module:La différence principale étant:
el.scrollLeft -= (e.wheelDelta || -e.detail);
À l'aide de la
e.wheelData
directement dans le défilement de décalage signifie que nous pouvons avoir la inertie, de sorte que la vitesse de défilement peut ralentir progressivement. J'ai trouvé cela a bien fonctionné pour moi.Simplement utiliser dans votre code comme (en supposant que le code ci-dessus est dans un fichier appelé scroller.js):
Dans mon cas, j'avais besoin de réinitialiser le défilement de retour à la normale lorsque le navigateur est redimensionnée, j'ai donc modifié Jitsehar de l' code un peu pour le faire fonctionner pour ma demande:
Initier propriétés hscroll sur navigateur redimensionner:
Vérifier si le conteneur a propriété white-space défini à 'nowrap' et revenir si ce n':
};
- Je utiliser ce média de requête de mise à jour de la propriété white-space:
Espère que cela aide à tous ceux qui veulent faire la même chose.