auto-scroll проблем

tyrla4eto

Registered
Здравейте, търсих код за авто-скрол и намерих следния:

Код:
<script>
window.setInterval(function() {
  var elem = document.getElementById('chatbox');
  elem.scrollTop = elem.scrollHeight;
}, 100);
</script>

Той работи, като вляза в страницата автоматично ми скорлва най-долу, проблемът е, че ако реша да скролна нагоре, не мога моментално ме връща пак долу. Някой знае ли как трябва да стане, да си скролва постоянно до долу, но ако натисна скрола и го задържа, да не ме връща долу, а да мога да скролна до където пожелая в страницата?
 
Ами като слагаш интервали, след това ги изчиствай, защото стават такива работи :D

[js]<script>
var interval = window.setInterval(function() {
var elem = document.getElementById('chatbox');
elem.scrollTop = elem.scrollHeight;
if(elem.scrollTop >= elem.scrollHeight)
{
clearInterval( interval);
}
}, 100);
</script>[/js]

Не съм го пробвал, просто дадох пример :) :?:
 
Няма промяна, нямам познания по javascript, за това питам, ако може някой да го корегира правилно...
 
Код:
<script>
window.setInterval(function() {
  var elem = document.getElementById('chatbox');
if (elem.scrollTop >= (elem.scrollHeight - elem.offsetHeight)) {
    elem.scrollTop = elem.scrollHeight;
}
}, 100);
</script>
Опитай така
 
joTunkiq каза:
Ами като слагаш интервали, след това ги изчиствай, защото стават такива работи :D

[js]<script>
var interval = window.setInterval(function() {
var elem = document.getElementById('chatbox');
elem.scrollTop = elem.scrollHeight;
if(elem.scrollTop >= elem.scrollHeight)
{
clearInterval( interval);
}
}, 100);
</script>[/js]

Не съм го пробвал, просто дадох пример :) :?:
Не искам да прозвучи обидно, ама това горе е доста ... хмм, глупаво да кажем. Създаваш интервал, който още в началото се изчиства. Това по-горе е същото като това:

Код:
while (true)  {
   int i = 5;
   if (i == 5)
      break;
}

Тоест можем да сведем горния код до това:

[js]var elem = document.getElementById('chatbox');
elem.scrollTop = elem.scrollHeight;[/js]

Но малко google-ване ни казва това: http://stackoverflow.com/questions/17481265/javascript-window-location-id
Което е просто един ред...
[js]document.querySelector('#chatbox').scrollIntoView();[/js]
А може и така:
[js]document.getElementById('chatbox').scrollIntoView();[/js]
 
Както писах по-горе нямам познания по Javascript, за това ако може да ми дадеш целия код, както трябва да изглежда, а не само този ред, туй като аз не разбирам, къде какво се случва с този Javascript все още...
 
tyrla4eto каза:
Както писах по-горе нямам познания по Javascript, за това ако може да ми дадеш целия код, както трябва да изглежда, а не само този ред, туй като аз не разбирам, къде какво се случва с този Javascript все още...
Както си го подкарвал досега - по същия начин. Само че кода между <script>-таговете го променяш на този дето показах:
[js]document.getElementById('chatbox').scrollIntoView();
[/js]
Единствено не разбрах защо искаш постоянно да скролваш до долу. Какъв е смисълът на останалото съдържание тогава?
 
Чат...., който съм написъл сам на PHP, но не знаех как да показва винаги най-долните съобщения, а когато поискаш, да можеш да разгледаш на горе предишните съобщения.... И това


Код:
<script>
document.getElementById('chatbox').scrollIntoView();
</script>

Също не работи.... Изобщо не скролва даже...
 

Back
Горе