problem w tym, że czasem ajaxem dostaję listę więcej jak jednego wpisu na raz z dwoma obrazkami. I wtedy dzieją się cuda. Pozycję scrolla obliczam dwa razy, pierwszy raz po dodaniu wpisu, drugi raz po załadowaniu się obrazka w tym wpisie. Ale jak są dwa obrazki to nie wiem co się dzieje. Ma być tak: - dostaję listę 2 wpisów (każdy z obrazkiem) - prependuję listę, sprawdzam outerHeight() i przesuwam o tyle scrolla w dół - niezależnie ładują się dwa obrazki, dla każdego sprawdzam czy załadowany i jeżeli tak to przesuwam scrolla w dół o wysokość obrazka
a mam tak:
var list = $($(data.html).html()); $d = list.prependTo($el); $e = $d.find('div.media-content > a > img'); // ??? $d.find('div.media-content > a > img').hide();
var t = $(window).scrollTop(); var h = $d.outerHeight();
if (t){ $(window).scrollTop(t + h + 1);
$($e).one('load', function () { console.log("dumP!"); $e.show(); var imgHeight = $(this).outerHeight(); var dm = $(window).scrollTop(); if (dm){ $(window).scrollTop(dm + $d.outerHeight() - h); } }); } else { $e.show(); } aby zasymulować sytuację, gdzie dostajemy 2 obrazki na raz wystarczy zmienić w kodzie https://greasyfork.org/en/scripts/9892-mirko-live/code interwał **interwal_ms** na np. 10 sekund i wtedy powinien wystąpić opisywany problem.
Mam problem ze scrollem. Robię dodatke do mirko i automatycznie prependuję nowe wpisy na górę. Gdy
$(window).scrollTop() > 0 to wtedy widok dla użytkownika nie może się przesuwać, prawie sobie poradziłem z tym: https://greasyfork.org/en/scripts/9892-mirko-live/code
problem w tym, że czasem ajaxem dostaję listę więcej jak jednego wpisu na raz z dwoma obrazkami. I wtedy dzieją się cuda.
Pozycję scrolla obliczam dwa razy, pierwszy raz po dodaniu wpisu, drugi raz po załadowaniu się obrazka w tym wpisie. Ale jak są dwa obrazki to nie wiem co się dzieje. Ma być tak:
- dostaję listę 2 wpisów (każdy z obrazkiem)
- prependuję listę, sprawdzam outerHeight() i przesuwam o tyle scrolla w dół
- niezależnie ładują się dwa obrazki, dla każdego sprawdzam czy załadowany i jeżeli tak to przesuwam scrolla w dół o wysokość obrazka
a mam tak:
var list = $($(data.html).html());
$d = list.prependTo($el);
$e = $d.find('div.media-content > a > img'); // ???
$d.find('div.media-content > a > img').hide();
var t = $(window).scrollTop();
var h = $d.outerHeight();
if (t){
$(window).scrollTop(t + h + 1);
$($e).one('load', function () {
console.log("dumP!");
$e.show();
var imgHeight = $(this).outerHeight();
var dm = $(window).scrollTop();
if (dm){
$(window).scrollTop(dm + $d.outerHeight() - h);
}
});
} else {
$e.show();
}
aby zasymulować sytuację, gdzie dostajemy 2 obrazki na raz wystarczy zmienić w kodzie https://greasyfork.org/en/scripts/9892-mirko-live/code interwał **interwal_ms** na np. 10 sekund i wtedy powinien wystąpić opisywany problem.
(przynajmniej u mnie)
kombinowałem z dodawaniem nowych obrazków do tablicy, potem .each() po załadowaniu każdego liczyć wysokość, ale coś mi nie wychodziło