jQuery Pozitie scroll in element html

Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
alexinio3d
Mesaje: 96

jQuery Pozitie scroll in element html

Salutare.
Am un chat si cand mi se actualizeaza imi sare scrollul in partea de sus a chatului si eu as vrea sa ramana in pozitia unde era cititorul .
1. Cum as potea sal fac sa mearga?
Acesta ii codul de actualizare date :

Cod: Selectaţi tot

<script type="text/javascript">
 $(document).ready(function(){
	var position = $("#mesaj").scrollTop();
	// Trimitem noile date la server
	$( "form" ).keypress( function( e ) {
		// Cand apasam tasta enter vom trimite datele in baza de date
		if(e.keyCode == 13){
			if($("#chatmesaj").val() != ""){
				var ChatText = $("#chatmesaj").val();
				$.ajax({
					type: 'POST',
					url: 'InsertMesaj.php',
					data: {ChatText:ChatText},
					success: function(){
						$("#chatmesaj").val("");
						$("#mesaj").show(2000);
						$("#mesaj").scrollTop( 400 );
					}
				});
			}
		}
	});
	
	// Setam intervalu de timp la care sa actualizeze mesajele
	setInterval(function(){
		$("#mesaj").load("mesaj.php");
		$("#mesaj").scrollTop( position );
	}, 1500);
	$("#mesaj").load("mesaj.php");
	$("#mesaj").scrollTop( position );
});
</script>
Am incercat sa pun scrollTop dar numa nu-mi ramane in pozitia unde era scrollul inainte de actualizarea datelor . :)

2.Cum pot face ca rezultatele sa fie de sus in jos . ( adica mesajele vechi sa fie in partea de sus si noul mesaj sa apara in partea de jos, mai exact ca la chaturi . ) ?
Trebuie sa fac asta din php sau din javascript ca sa fie ??
Siteuri create / configurate de mine :
SilvoProject.Ro ( Magazin Online ) : SilvoProject.Ro
TreiSute.Ro ( Comunitate de gaming ) : TreiSute.Ro

MarPlo Mesaje: 4343
Salut
1. Cu proprietatea jQuery scrollTop() se poate pprelua si seta pozitia barei verticale de scroll intr-un element.
Poti aplica acest exemplu in codul ta:

Cod: Selectaţi tot

var scrlchat = $('#mesaj').scrollTop();      // preia pozitia scroll
$('#mesaj').scrollTop( scrlchat );      // seteaza pozitia scroll
2. Nu apare in codul tau cum sunt adaugate /ordonate mesajele, probabil se face in php.

alexinio3d Mesaje: 96
Da a mers .

Mai am inca o intrebare . :)
Daca vreau sa setez ca scroll-ul sa stea in partea de jos cum pot face?? .
Adica daca intru pe pagina scrolu la chat sa fie in jos de tot .

Setarea la div-ul chatului ii de 400px inaltimea si am incercat sa pun la "scrlchat" valoarea 400 dar numa nu merge.
Siteuri create / configurate de mine :
SilvoProject.Ro ( Magazin Online ) : SilvoProject.Ro
TreiSute.Ro ( Comunitate de gaming ) : TreiSute.Ro

MarPlo Mesaje: 4343
Pentru scroll in partea de jos a elementuli html, incearca acest cod (sau vezi ce se gaseste pe internet, la cautare: "jquery scroll div to bottom").

Cod: Selectaţi tot

$('#mesaj').scrollTop($('#mesaj')[0].scrollHeight);
Sau animat:

Cod: Selectaţi tot

$("#mesaj").animate({ scrollTop: $("#mesaj")[0].scrollHeight}, 800);

Subiecte similare