8

如果可能的话,谁能解释一下如何在iscroll div中加载动态内容并为其分配新高度?

我可以让它工作,但我无法控制新内容的滚动高度。

我对这一切都很陌生,不知道要开始。

这是我正在做的事情:

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

加载页面时,您会看到没有内容的滚动条...单击 print/damm(显示我最初为此内容设置的高度)单击 print/fcbarcelona(保持与您使用的滚动条相同的高度和位置之前)如您所见,它没有按应有的方式工作。显然,我不希望卷轴在不需要时出现。

任何帮助将不胜感激。

4

5 回答 5

14

最好使用 iScroll 中的 refresh() 方法,它会重新计算高度。

myScroll.refresh();
于 2012-08-18T21:55:21.823 回答
3

试试这个,当您将新数据插入 iScroll 时,请执行以下步骤

//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 
于 2011-11-11T22:47:18.980 回答
3

我有一个类似的问题,只是refresh()没有帮助,所以没有帮助销毁和重新创建 iScroll。在我的例子中,我将很多元素加载到 iScroll div 中。是什么解决了这个问题setTimeout()。正如MASTERING THE REFRESH() METHOD所说,即使添加0ms到 asetTimeout()也可以解决很多问题。就我而言,它是500ms。=

这是代码示例:

    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();
}

我的问题是该refresh()函数是在内容插入 DOM 之前执行的,因此增加超时会有所帮助。希望对像我这样的初学者有所帮助。

于 2013-02-16T06:08:36.403 回答
0

观察高度变化:

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

    if (newScrollerHeight !== prevScrollerHeight) {
         prevScrollerHeight = newScrollerHeight;
         myScroll.refresh();
    }
}, 500);
于 2015-04-11T07:46:45.500 回答
-1

看一下iScroll4
在iscroll.js中,我看到experimental option: checkDOMChanges: false,// Experimental
可以开启使用。

于 2016-03-12T04:26:15.763 回答