Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js]more/less
Forum PHP.pl > Forum > Przedszkole
b_chmura
Witam
Potrzebuje skryptu który zlicza liczbę znaków (może być wyrazów) i jeśli przekracza ona X skraca tekst do X znaków wstawiając "przycisk" po naciśnięciu którego tekst ukazuje się w oryginalnej postaci.

Sam w js nie potrafię zrobić takiej rzeczy a zależy mi żeby akcja rozgrywała się szybko i bez konieczności przeładowania strony.

z góry śliczne dzięki za pomoc

pozdrawiam
Chmura
Cezar708
jedna z propozycji aczkolwiek niezbyt wydajna przy wielkiej liczbie skrótowców
Kod
<body onload="initTxt()">
<script language="JavaScript" language="JavaScript">
// funkcja pomocnicza
function $(id){
  return document.getElementById(id);
}
// w tej tablicy zachowujesz orygnalne teksty
var gArray = new Array();
// ta funkcja skraca do odpowiedniej wartosci
function shortText( id, maxLen ){
  gArray[id] = $(id).innerHTML;
  txt = $(id).innerHTML;
  if ( txt.length > maxLen ){
    $(id).innerHTML = txt.substring(0,maxLen-1) + "<a href=\"javascript:expandText('"+id+"')\">...</a>";
  }
}
// ta pobiera pełen text
function expandText(id){
  $(id).innerHTML = gArray[id];
}
// tu inicjujesz ktore teksty chcesz skrocic i do jakiej dlugisci
function initTxt(){
  shortText( 'txt', 10 );
  shortText( 'txt2', 10 );
  shortText( 'txt3', 10 );
}
</SCRIPT>

<div id='txt'>
  Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam
</div>
<div id='txt2'>
  Lorem
</div>
<div id='txt3'>
  Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diamLorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diamLorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam
</div>

</body>
b_chmura
pod FF chodzi przy IE coś nie bardzo...
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.