0

我的 iScroll 工作正常。我在 3 个包含文本的可滚动 div 中添加了一个 jQuery font sizer 插件。在使用“A+”来增加文本大小时,我得到了“橡皮筋”效果 [这是我所期望的]
我知道掌握REFRESH() 方法,但是我不知道如何正确实现这一点。

我的 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);
4

2 回答 2

1

哦,它可以多么简单......使用完整的 iscroll.js 而不是 lite 并添加 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>
于 2012-11-22T22:07:35.533 回答
0

当你的 Dom 改变或 Dom 的高度改变时,你也可以调用refresh()函数。

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

确保在 iScroll 加载到 Dom 之后调用 refresh() 函数。同样在 dom 完全更改后,只需使用 setTimeout 调用 refresh() 函数。

于 2015-03-10T13:25:00.960 回答