ScrollPosition n'est pas défini en haut lors de la navigation vers d'autres pages
P粉556159786
P粉556159786 2023-08-30 09:07:14
0
1
550
<p>La page Web est conçue selon une approche maître-esclave. Le maître comporte des onglets (volet de gauche) qui, lorsqu'ils sont cliqués, affichent les pages correspondantes dans les esclaves (volet de droite). Par exemple. master a trois deux onglets "Schémas et modèles" où le schéma est affiché par défaut. L'utilisateur peut naviguer entre ces deux pages (chargées par la page esclave) à l'aide des onglets du volet de gauche (chargés par la page maître). </p> <p>Maintenant, lorsque l'utilisateur fait défiler jusqu'à une position dans la page de schéma et accède à la page de modèle, la position de défilement n'est pas définie sur le haut. Mais le comportement de défilement est défini dans le fichier du routeur. </p> <pre class="brush:php;toolbar:false;">const createRouter = () => nouveau VueRouter({ scrollBehavior : () => ({ x : 0, y : 0 }), itinéraires :[ //a tous les itinéraires ] });</pré> <p>Lors de la définition d'un point d'arrêt à proximité du scrollBehavior et de l'observation, la ligne est atteinte chaque fois qu'il y a une navigation, mais la position de défilement n'est pas définie en haut lors de la navigation de l'architecture vers la page du modèle. </p> <p>Cependant, lorsque vous faites défiler jusqu'à un emplacement spécifique dans la page du modèle et que vous accédez à la page d'architecture, cette page est placée en haut. </p> <p> J'ai également essayé d'écrire la fonction window.scrollTo(0, 0); dans Mounted() dans templates.ts. Même si l'utilisateur clique dessus, la page n'est pas placée en haut. </p> <p>Quelqu'un peut-il expliquer pourquoi cela se produit ? J'ai essayé presque toutes les solutions possibles répertoriées sur stackoverflow. </p>
P粉556159786
P粉556159786

répondre à tous(1)
P粉248602298

J'ai également rencontré ce problème en vue. Si vous souhaitez faire défiler vers le haut, vous devrez utiliser cette astuce. Au lieu de window.scrollTo(0, 0);, utilisez-le dans setTimeout, le délai d'attente est très petit.
settimeout(()=>{ window.scrollTo(0, 0); }, 10)
J'espère que cela t'aides.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal