2014-11-18 3 views
0

У меня возникла эта проблема, мой iscroll5 не будет прокручиваться, пока я не изменю размер браузера. Я загружаю динамические данные в iscroll5. Интересно, почему это происходит, это случилось со мной раньше, когда я использовал swiper.iscroll5 динамические данные, необходимо изменить размер для его прокрутки

    $.ajax({ 
    type: "POST", 
    url: "http://test.com/detailpic.php", 
    data: {"data":listingid2}, 
       dataType:'json', 
      success: function(data2){ 
       console.log(data2); 
        for(var i=0; i<data2.length; i++) { 


         var image = "http://test.com/image/"+data2[i].pic; 






        var image2=" <div class='slide'><img class='lazy' src='"+ image + "' width='100%' id='viewer'/></div>" 



    $("#content").append(image2); 



      } 



      } 

     }); 


var scroller = new Array(); 
    console.log("iscroll5working"); 
$('.myclass').each(function test(){ 
    console.log("iscroll5working2"); 

    myScroller = new IScrollFix(this, { 
     scrollX: true, 
     scrollY: true, 
     snap:true, 
    }); 

    scroller.push(myScroller); 


}); 

Edit:

var scroller = new Array(); 

    $('.myclass').each(function(){ 

    myScroller = new IScrollFix(this, { 
     scrollX: true, 
     scrollY: true, 
     snap:true, 
    }); 

    scroller.push(myScroller); 
     setTimeout(function() { 
     myScroller.refresh(); 
    }, 100);          

}); 

ответ

1

Вы можете вызвать iScrolls обновить функцию. Он обновит внутренние свойства и пересчитает ширину и высоту как на скроллере, так и на обертке. Это должно сделать трюк для вас.

Подробнее в iScroll документы: http://iscrolljs.com/#refresh

Вот объясняющий текст из документации:.

«iScroll необходимо знать точные размеры как обертки и скроллера Они вычисляются при запуске но если ваши элементы меняются по размеру, нам нужно сказать iScroll, что вы возились с DOM. Это достигается путем вызова метода обновления с правильной синхронизацией. Пожалуйста, следуйте за мной внимательно, понимая, что это сэкономит вам часы разочарования. Каждый раз, когда вы касаетесь DOM, обозреватель обозревает страницу. Как только эта перекраска произошла, мы можем fely ​​читать новые свойства DOM. Фаза перекраски не мгновенная, и это происходит только в конце области действия, вызвавшей ее. Вот почему нам нужно дать рендереру немного отдохнуть перед обновлением iScroll. »

+0

Обогатите свой ответ кодом и демонстрацией. Ссылка - это не ответ. – Omar

+0

Добавлен текст из документов.« Ссылка только isn 't ответ "- Вы можете внести свой вклад @Omar .. –

+0

Я не собираюсь исправлять ваш« собственный »ответ для вас. Это ваша работа не моя. – Omar