2010-04-02 6 views
1

J'ai un éditeur HTML en temps réel, avec une zone de texte sur la gauche pour l'entrée du code, et un 'DIV' sur la droite pour contenir l'aperçu du code entré. À l'heure actuelle, lorsque vous éditez le code dans le volet de gauche, l'aperçu reste juste là où il est, si souvent que la partie du code que vous éditez ne se trouve pas dans la zone visible de l'aperçu (en particulier quand des images sont impliquées).Faire défiler jusqu'à une position de texte en Javascript

Ma question est comment faire défiler l'aperçu pour afficher la partie du code en cours de modification?

Voici la page que j'ai jusqu'à présent: http://www.caerphoto.com/rtedit.html Vous remarquerez dans la source que j'ai une fonction (non utilisée actuellement) matchPreview() qui tente de faire correspondre la position de défilement de la prévisualisation en fonction de la position de défilement le textarea, mais évidemment si les images ou le grand texte sont impliqués les deux panneaux ne correspondent plus.

Répondre

0

Au lieu d'une div de la cible clone, essayez d'utiliser une étiquette.

0

laissez-moi Décomposer la tâche en 2 sous-tâches:

  1. renseIGnez lorsque le dom change , vous pouvez écouter les changements du dom comme onsubtreemodified.

voir en.wikipedia.org/wiki/DOM_events

  1. l'élément défilement en vue

la réponse à cette question est la méthode ScrollIntoView:

voir www.quirksmode.org/dom/tests/scrollintoview.html

howe Cela ne vous aidera peut-être pas trop puisque vous mettez à jour le document html à chaque changement de zone de texte. Puisque vous ne pouvez pas obtenir la position du curseur à l'intérieur de la zone de texte, cela pourrait ne pas être si facile.

désolé mate, à la fin je n'ai pas de solution, mais peut-être ma rumination aide d'une certaine manière néanmoins.

bonne chance!

+0

J'ai trouvé une demi-solution en utilisant un peu de magie jquery: var jqselector = « #preview: contient ('"+ esced +"'): dernier "; Cela ne fonctionne que si le curseur est en dehors d'un tag, mais c'est le meilleur que j'ai trouvé jusqu'ici. – Andy

0

Lorsque j'ai essayé cela dans Firefox. aucun saut de ligne n'a été vu dans l'aperçu; est-ce correct? Je peux être en mesure d'aider (fait quelque chose similsr récemment), mais pas si les sauts de ligne sont supprimés ...

Questions connexes