l'entrée sur l'objet ou la touche de tabulation enfoncé, déplacer au centre de l'écran
J'ai un certain nombre de champs de formulaire s'étendant sur plus de la page fois. Lorsque vous appuyez sur la touche "tab" à l'étape à travers chaque entrée/sélectionner le champ, il se trouve le champ suivant sur le bas de la page pli.
Quelques-uns de mes champs de l'outil de conseils, de validation des réponses et de suggestion automatique de zones qui s'affichent sous le champ. Lors de la tabulation sur le terrain, vous ne pouvez pas voir ces éléments en dessous de la page pli.
Est-il un javascript ou jQuery script qui peut à la verticale du centre de l'écran autour d'un concentré d'entrée/textarea/sélectionner/bouton de champ au lieu de l'alignement vers le bas?
Ma réponse pour vous? Veuillez fournir un commentaire si/pourquoi ne pas satisfaisant pour votre problème
Je suis d'accord que c'est une particularité de l'action et sera utilisé avec parcimonie, car il serait ennuyeux. Juste essayer de penser à une solution adaptée - peut-être seulement le centre le terrain lors de la "tabulation" pas sur l'objet ou peut-être glisser animer la vitesse de défilement. Sinon quels sont les autres moyens de garder le focus d'entrée collier à partir de la page plier?
OriginalL'auteur Peter Craig | 2009-12-03
Vous devez vous connecter pour publier un commentaire.
Vous pouvez simplement lier les événements de focus et puis de calculer le décalage du champ et de la centrer sur l'écran.
De faire quelques vérifications, il obtient les valeurs de droite, mais de la fenêtre de document ou de scrollTop() ne veut pas jouer à la balle... j'ai changé cela à l'div id (#div).scrollTop qui ne fait presque mais il n'est pas aussi cohérent que je m'attends à corps ou à la fenêtre.
Il y a parfois des problèmes avec Firefox et/ou Chrome. Vous pouvez essayer de
$('html, body').animate({scrollTop: top - center}, 300);
Qui fonctionne pour moimerci , a travaillé pour moi parfait
$(window).height()
n'a pas fonctionné pour moi, comme c'était le calcul de la longueur de l'ensemble du contenu du site web au lieu de la fenêtre. J'ai utilisé$(window).outerHeight()
à la place. À l'aide de jQuery en version 3.2.1OriginalL'auteur PetersenDidIt
Chose la plus facile serait d'inclure la jQuery ScrollTo plugin et la jQuery Fenêtre d'affichage plugin.
Puis enveloppez chaque entrée + liés à d'autres éléments (de la validation de la réponse, ....) dans un div.
Sur l'objet de vérifier si la div est complètement visible, si ce n'est l'utilisation
scrollTo
. Fait.Bien sûr, c'est un peu de ballonnement mais si vous pouvez vivre avec les 2 plus de dépendances et d'un autre de ~4 ko cela devrait fonctionner sans faire le calcul vous-même.
OriginalL'auteur jitter
Même à partir de ci-dessus avec lisse de défilement effet
OriginalL'auteur Arun Prasad E S