| Autor | Zpráva | ||
|---|---|---|---|
| Fisak Profil |
#1 · Zasláno: 15. 4. 2013, 15:19:27
Dobrý den. Mám script který my má odscrollovat až nakonec divu.. Bohužel tomu tak není.. Neví někdo proč?
<div id="chat-window">
<div id="chat">
<script>
CasovacChat();
function NewHodnotaChat() {
var xmlhttp;
var hframe = document.getElementById('hframe');
if (window.XMLHttpRequest) var xmlhttp = new XMLHttpRequest();
else var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
hframe.innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "./../../plugins/php/chat_frame.php", true);
xmlhttp.send();
CasovacChat();
}
function CasovacChat() {
setTimeout("NewHodnotaChat()", 1000);
}
</script>
<span id='hframe'><center style="padding-top: 25%; padding-left: 25%;"><img src="./../../images/chat/load.gif" title="načítání" width="85px"/><br><b>Načítání...</b></center></span>
</div>
</div>
<script>
$(function ()
{
var $mydiv = $('#chat');
$mydiv.scrollTop($mydiv.height());
});
</script> |
||
| Chamurappi Profil |
#2 · Zasláno: 15. 4. 2013, 15:32:42
Reaguji na Fisaka:
„Bohužel tomu tak není..“ Nevěřím. Nerozumím tvému postupu. Dal jsem ti optimální hotové řešení a teď se s tím zase patláš od začátku, opakuješ stejné chyby… to nemá cenu. |
||
| Fisak Profil |
#3 · Zasláno: 15. 4. 2013, 15:34:55
Chamurappi:
Ano fungovalo to pokud to bylo v iframu.. Jenže teď jsem předělal ten chat tak aby to nebylo v iframe ale v divech a to už bohužel fungovalo tak že to posunulo dolu celou stránku a ne pouze div. |
||
| Chamurappi Profil |
#4 · Zasláno: 15. 4. 2013, 15:39:56
Reaguji na Fisaka:
Takže budeš místo volání scrollBy(0, 100000) nastavovat nějakýElement.scrollTop = 100000 a onscroll nebudeš chytat na window, ale na tom elementu, a nebudou tě zajímat rozměry a stav posuvníku kořenového elementu, ale toho, kterým se roluje. To jsou všechno celkem jednoduché úpravy, ale ty místo toho celou logiku zahodíš a napatláš si přes jQuery jednorázové přenastavení scrollTop při načtení stránky a pak se divíš, že je jednorázové…
|
||
| Fisak Profil |
#5 · Zasláno: 15. 4. 2013, 15:47:31
Chamurappi:
Dobře takže jestli to dobře chápu tak <script>
var $mydiv = $('#chat-window');
var automatika = true;
$mydiv.onscroll = function()
{
automatika = $mydiv.scrollTop + $mydiv.clientHeight == $mydiv.scrollHeight;
};
if(automatika) scrollBy(0, 100000);
</script>takhle je to dobře ? |
||
| Chamurappi Profil |
#6 · Zasláno: 15. 4. 2013, 15:52:16
Reaguji na Fisaka:
Ne. Funkce $ nevrací element, ale nějaké jQuery pouzdro kolem pole elementů. Použij document.getElementById, tak, jak už ho používáš jinde.
„ if(automatika) scrollBy(0, 100000);“
Spíš něco.scrollTop = 100000;, kde to něco bude element s posuvníkem.
|
||
| Fisak Profil |
#7 · Zasláno: 15. 4. 2013, 15:59:50 · Upravil/a: Fisak
Chamurappi:
Dělám to podle Vás ale stále mi to nejde :( už nevím v čem dělám chybu.. <script>
var myScrollDiv = document.getElementById('chat-window');
myScrollDiv.scrollTop = 100000;
</script> Ba ne funguje to :-) Děkuji moc za rady.. |
||
|
Časová prodleva: 13 let
|
|||
0