Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z scrollTop
woxala123
post 11.06.2016, 10:21:38
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Witam. Oto poniżej kod java script który obsługuje chat. Chcę by po otwarciu strony scroll znajdował się na dole, a znajduje się na górze. Owszem po wpisaniu wiadomości
scroll automatycznie jest na dole. Wiem tylko tyle że odpowiada za o element scrollTop, tylko nie wiem jak to ustawić.
pozdrawiam

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(document).on('submit', '#chatForm', function(){
var text = $.trim($("#text").val());
var user = $.trim($("#user").val());

if(text != "" && user != "") {
$.post('ChatPoster.php', {text: text, user: user}, function(data){
$(".chatMessages").append(data);

$(".chatMessages").scrollTop($(".chatMessages")[0].scrollHeight);
$("#text").val('');
});
} else {
alert("Musisz wpisac wiadomość!");
}
});



function getMessages() {
$.get('GetMessages.php', function(data){
var amount = $(".chatMessages li:last-child").attr('id');
$(".chatMessages").html(data);
var countMsg = data.split('<li').length - 1;
array = [countMsg, amount];
});
return array;
}


setInterval(function(){
var num = getMessages();
if(num[0] > num[1]) {
$(".chatMessages").scrollTop($(".chatMessages")[0].scrollHeight);
}
},1000);

Go to the top of the page
+Quote Post
LowiczakPL
post 11.06.2016, 12:24:37
Post #2





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

Ostrzeżenie: (0%)
-----


Kod
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
$(document).ready(function(){

$('.chatMessages').scrollTop($('.chatMessages').height());

$(document).on('submit', '#chatForm', function(){

...


Ten post edytował LowiczakPL 11.06.2016, 12:24:59


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
Go to the top of the page
+Quote Post
woxala123
post 11.06.2016, 12:38:58
Post #3





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Ale co daje ten wariant bo na razie nic nie daje. Bo jak wpiszę np: w opcji $('.chatMessages').scrollTop($('.chatMessages').height(1000)); to wydłuża wysokość chatu.
Go to the top of the page
+Quote Post
LowiczakPL
post 11.06.2016, 13:14:58
Post #4





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

Ostrzeżenie: (0%)
-----


Napisałeś "Chcę by po otwarciu strony scroll znajdował się na dole"

testowałeś moją propozycję?

To co Ty napisałeś nie ma nic wspólnego z moim kodem, Tu ustawiasz wysokość, a ja ją pobieram.

Ten post edytował LowiczakPL 11.06.2016, 13:17:23


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
Go to the top of the page
+Quote Post
woxala123
post 11.06.2016, 15:06:35
Post #5





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Sorki, ale co z tego że pobierasz. Tylko przy pobieraniu scroll ma być na dole. Nasuwa pytanie się 1) Czy już na wstępie w pliku chatmessages.php ma byc na dole
czy w plik index.php który pobiera plik tam w contenerze ma byc scroll na dole.

Troszkę rozwiązałem problem znajdując w necie taki kod któey powoduje automatyczne przesunięcie scrolla w dół i by było okey. tylko jeszcze zastanawiam dlaczego co jakis czas podskakuje scroll tzn: co 2 sekundy rozumiem że może odświeża ostatnią wiadomość. Czy to jest to?
  1. var $chat = $(".chatMessages");
  2. var chatHeight = $chat.innerHeight();
  3. var c = 1;
  4.  
  5. function newMessage() {
  6. $chat.append("<li>This is message "+ (c++) +"</li>");
  7. if(!$chat[0].noScroll) {
  8. $chat.stop().animate({scrollTop: $chat[0].scrollHeight-chatHeight},600);
  9. }
  10. }
  11.  
  12. $chat.hover(function() {
  13. return this.noScroll ^= 1;
  14. });
  15.  
  16. $chat.scrollTop( $chat[0].scrollHeight );
  17. setInterval( newMessage, 2000 );
  18.  
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.04.2024 - 16:48