2011-10-15 25 views
8

bất cứ ai có thể vui lòng giải thích, với một ví dụ nếu có thể, làm thế nào để tải nội dung động bên trong một div iscroll và gán một chiều cao mới cho nó?làm cho iscroll hoạt động khi tải div động

Tôi có thể làm cho nó hoạt động nhưng tôi không thể kiểm soát chiều cao của cuộn cho nội dung mới.

Tôi mới cho tất cả điều này và không có đầu mối nào để bắt đầu.

đây là những gì tôi đang làm việc trên:

http://homepage.mac.com/jjco/test/index7.html

khi trang web được tải mà bạn nhìn thấy thanh cuộn nơi không có nội dung ... click trên bản in/Damm (cho thấy chiều cao ban đầu tôi đặt cho nội dung này) nhấp vào in/fcbarcelona (duy trì cùng chiều cao và vị trí của cuộn bạn đã sử dụng trước đây) khi bạn thấy nó không hoạt động như mong muốn. hiển nhiên, tôi không muốn cuộn ở đó khi không cần thiết.

mọi trợ giúp sẽ được đánh giá cao.

Trả lời

3

thử điều này, khi bạn chèn dữ liệu mới của bạn vào iScroll làm các bước sau

//myScroll is a global variable you initialize iScroll on 
myScroll.destroy(); 
myScroll = null; 
loaded();//this is a functions where you have have your iScroll initializer 
+0

cảm ơn vì điều này, đã làm việc cho tôi một cách hoàn hảo. – JasonMHirst

+0

* Có nghĩa là để tiêu diệt() –

14

Nó tốt hơn để sử dụng phương pháp làm mới() trong iScroll, mà sẽ tính toán lại chiều cao.

myScroll.refresh(); 
3

Tôi gặp sự cố tương tự và chỉ refresh() không giúp được, vì vậy không giúp phá hủy và tạo lại iScroll. Trong trường hợp của tôi, tôi đã tải rất nhiều yếu tố vào iScroll div. Điều gì đã giải quyết được vấn đề là setTimeout(). Như MASTERING THE REFRESH() METHOD cho biết thêm ngay cả 0ms đến setTimeout() sẽ giải quyết được nhiều sự cố. Trong trường hợp của tôi là 500ms. =

đây là mẫu mã:

var myScroll; 

    function createIScroll(){ 
    myScroll = new iScroll('wrapper'); 
    } 

    function iScrollRefresh(){ 
     setTimeout(function(){ 
     myScroll.refresh(); 
     }, 500); 
    } 
$ajax(){ 
//receiving data 
} 
function someFunction(){ 
    //dynamic content is created 
    iScrollRefresh(); 
} 

Vấn đề của tôi là refresh() hàm được thực hiện trước khi nội dung được đưa vào DOM, do đó tăng thời gian chờ giúp đỡ. Tôi hy vọng nó sẽ giúp cho những người mới bắt đầu như tôi.

+0

tương tự cho tôi, làm mới một mình đã không làm việc, nhưng setTimeout đã giải quyết vấn đề, cảm ơn. – Yasmine

0

Để xem chiều cao thay đổi:

setInterval(function() { 
    var newScrollerHeight = $scroller.innerHeight(); 

    if (newScrollerHeight !== prevScrollerHeight) { 
     prevScrollerHeight = newScrollerHeight; 
     myScroll.refresh(); 
    } 
}, 500); 
-1

Hãy xem iScroll4
Trong iscroll.js, tôi thấy tùy chọn thực nghiệm: checkDOMChanges: false, // nghiệm
Bạn có thể kích hoạt và sử dụng nó.

Các vấn đề liên quan