Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] scrollTop szukanie odległości
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Piro
Witam,

Mam problem ze znalezieniem sposobu na ustawienie odległości zaznaczonego tekstu od początku pola tekstowego. W moim skrypcie (bbcode) po kliknięciu w przycisk suwak przenosi się na sam koniec pola. Chciałbym aby się przesuwał tylko do momentu w którym zaznaczyłem tekst.
Narazie wygląda to tak:
[JAVASCRIPT] pobierz, plaintext
  1. txtarea.scrollTop = txtarea.scrollHeight;
[JAVASCRIPT] pobierz, plaintext


Początek zaznaczenia pobierany jest do zmiennej selStart:
[JAVASCRIPT] pobierz, plaintext
  1. var selStart = txtarea.selectionStart;
[JAVASCRIPT] pobierz, plaintext


jeżeli zamiast txtarea.scrollHeight podam zmienną selStart oczywiście nie przeniesie suwaka tam gdzie trzeba ponieważ w tej zmiennej zapisana jest tylko ilość pól do początku zaznaczenia (potrzebuję przynajmniej liczbę wierszy). Jeżeli ktoś zna jakiś sposób na wyciągnięcie liczby wierszy proszę o odpowiedź.

Pozdrawiam,
Piro
skowron-line
Możesz spróbować policzyć liczbę enterów i określić mniej więcej po ilu znakach przenosi Ci kursor do następnej linii. Na tej podstawie mniej więcej będziesz w stanie ustawić scroll.
Piro
Jest problem ponieważ mam skrypt
[JAVASCRIPT] pobierz, plaintext
  1. function countlines()
  2. {
  3. var area = document.getElementById("txtarea")
  4. var text = area.value.replace(/\s+$/g,"")
  5. var split = text.split("\n")
  6. return split.length
  7. }
[JAVASCRIPT] pobierz, plaintext


Liczy mi nowe linie pod warunkiem że dam znak nowej linii... Jeżeli piszę tekst ciągły (raczej tak będzie) to nie jest liczone automatyczne przejście do nowej linii.

Już problem został naprawiony:

Ostateczna funkcja:
[JAVASCRIPT] pobierz, plaintext
  1. function countLines(id_form){
  2. var nChar = id_form.value.match(/\S/g).length;
  3. var tmpCalc = (id_form.cols/3.4).toFixed(2);
  4. tmpCalc = id_form.cols-tmpCalc;
  5. var nLines = parseInt(nChar/tmpCalc);
  6. alert(nLines);
  7. }
[JAVASCRIPT] pobierz, plaintext


w moim przypadku liczba 3.4 pasuje przy liczeniu
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.