首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iscroll dom更改

iscroll dom更改
EN

Stack Overflow用户
提问于 2012-11-23 06:07:36
回答 2查看 1.5K关注 0票数 0

我让iScroll正常工作。我已经添加了一个jQuery字体大小插件到3个包含文本的可滚动div中。在使用"A+“增加文本大小时,我得到了预期的”橡皮筋“效果

我知道MASTERING THE REFRESH() METHOD,但是我不知道如何正确地实现它。

我的iscroll代码是

代码语言:javascript
复制
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的示例如下

代码语言:javascript
复制
<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> 

现在,我可以如何/在哪里添加

代码语言:javascript
复制
setTimeout(function() { scroll1.refresh(); }, 0);
EN

回答 2

Stack Overflow用户

发布于 2012-11-23 06:07:36

哦,这有多简单……使用完整的iscroll.js而不是精简版并添加checkDOMChanges: true

代码语言:javascript
复制
<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>
票数 1
EN

Stack Overflow用户

发布于 2015-03-10 21:25:01

您还可以在Dom更改或Dom高度更改时调用refresh()函数。

代码语言:javascript
复制
setTimeout(function() { scroll1.refresh(); }, 200);

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13520607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档