2012-11-22 72 views
0

我有iScroll工作正常。我已經將jQuery字體sizer插件添加到包含文本的3個可滾動div中。在使用「A +」增加文本大小時,我得到了「我期望的」橡皮筋效應
我知道MASTERING THE REFRESH() METHOD但是我不知道如何正確實現它。iscroll dom變化

我iscroll代碼

var scroll1, scroll2, scroll3, 
scrollNav; 

function loaded() { 
setTimeout(function() { 
    scrollNav = new iScroll('transition1', { useTransition:true }); 
    scroll1 = new iScroll('scrollpage01', { useTransition:true }); 
    scroll2 = new iScroll('scrollpage02', { useTransition:true }); 
    scroll3 = new iScroll('scrollpage03', { useTransition:true }); 
    }, 250); 
} 

document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false); 
document.addEventListener('DOMContentLoaded', loaded, false); 

與文本的div的一個樣本是

<article id="scrollpage01"> 
<div id="contentScroller"> 
    <div class="box"> 
     <a class="jfontsize-button" id="jfontsize-m" href="#">A-</a> 
     <a class="jfontsize-button" id="jfontsize-d" href="#">A</a> 
     <a class="jfontsize-button" id="jfontsize-p" href="#">A+</a> 

     <p class="some-class-name">Lorem ipsum dolor sit amet, ....blah blah blah.... suspendisse potenti. 
     </p> 

     <script type="text/javascript" language="javascript"> 
      $('.some-class-name').jfontsize({ 
       btnMinusClasseId: '#jfontsize-m', 
       btnDefaultClasseId: '#jfontsize-d', 
       btnPlusClasseId: '#jfontsize-p' 
      }); 
     </script> 
    </div> 
</div> 
</article> 

現在如何/我在哪裏可以添加

setTimeout(function() { scroll1.refresh(); }, 0); 

回答

1

啊,怎麼簡單,它可以....使用完整的iscroll.js而不是精簡版並添加checkDOMChanges:true

<script type="text/javascript"> 
    var scroll1, scroll2, scroll3, 
    scrollNav; 

    function loaded() { 
    setTimeout(function() { 
     // scrollNav = new iScroll('navWrapper'); 
     scrollNav = new iScroll('transition1', { useTransition:true }); 
     scroll1 = new iScroll('scrollpage01', { useTransition:true, checkDOMChanges: true }); 
     scroll2 = new iScroll('scrollpage02', { useTransition:true, checkDOMChanges: true }); 
     scroll3 = new iScroll('scrollpage03', { useTransition:true, checkDOMChanges: true }); 
     }, 250); 
    } 

    document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false); 
    document.addEventListener('DOMContentLoaded', loaded, false); 
</script> 
+0

是'checkDOMChanges:true'也可以使用'iScroll 5'嗎? – Amit

0

您也可以撥打刷新()函數只要您的Dom變化或DOM的高度變化。

setTimeout(function() { scroll1.refresh(); }, 200); 

請確保在Dom中加載iScroll後調用refresh()函數。 在dom完全更改之後,只能使用setTimeout調用refresh()函數。