0

我正在尝试在我的 IOS 应用程序开发中使用 cordova 2.1.0 使用 iscroll4。

<script type="application/javascript" src="iscroll.js"></script>
<script type="text/javascript">
var myScroll;
function loaded() {
    setTimeout(function () {
        myScroll = new iScroll('wrapper');
    }, 100);
}
window.addEventListener('load', loaded, false);
</script>

如果我想动态编辑 vScroll、vScrollBar、fixedScrollbar 等参数,即。在 iscroll(myScroll = new iScroll('wrapper');) 初始化之后,我怎么能在 javascript 中做到这一点。提前致谢。

4

1 回答 1

0

我不会试图寻找“适用于所有情况”的解决方案。

我会:

  1. 总结您想要修改的特定选项。
  2. 查看这些选项中的哪些在初始化过程中很重要
  3. 以编程方式(手动)更改这些选项
  4. 仅在运行时重要的选项(即在事件发生时读取),我只是尝试修改 myScroller.options 对象。

例如,您可以设置以下选项:

myScroller = new iScroll( el, { x:20, y:30, onRefresh: function(){ alert(11); } } );

考虑到我要执行的步骤,您是否想修改这 3 个(或更多..):

  1. x, y, 滚动条类

  2. 在初始化中,我们看到使用了 x 和 y(第 120 行):

    // 设置起始位置 that.x = that.options.x; 那.y = 那.options.y;

这意味着这些选项影响的不仅仅是运行时的东西,在初始化期间它会修改 that.x 和 that.y(即使到目前为止非常简单)。

3.

myScroller.x = newX;
myScroller.options.x = newX;
myScroller.y = newY; 
myScroller.options.y = newY;
// Also depeneds on x & y, but only do this if you actually useTransform and care about this!

/*
 * obtain required variables..
 */
var appVersion = navigator.appVersion,
    vendor = (/webkit/i).test(appVersion) ? 'webkit' :
        (/firefox/i).test(navigator.userAgent) ? 'Moz' :
        'opera' in window ? 'O' : '',

has3d = 'WebKitCSSMatrix' in window && 'm11' in new WebKitCSSMatrix(),

trnOpen = 'translate' + (has3d ? '3d(' : '('),
    trnClose = has3d ? ',0)' : ')';

// Code that actually matters, and where we use above variables
if (that.options.useTransform) that.scroller.style[vendor + 'Transform'] = trnOpen + that.newX + 'px,' + that.newY + 'px' + trnClose;
        else that.scroller.style.cssText += ';position:absolute;top:' + that.newY + 'px;left:' + that.newX + 'px';

4.

myScroller.options.onRefresh = function() { alert(33); }

也许你甚至可以在 options.onDestroy 属性中做所有这些事情;)

更新:我还注意到了销毁功能,如果您确实想“完全清除”滚动条,可能会很方便。但我没有看到会删除物理创建的滚动条的代码,但我不确定。

于 2012-10-16T09:12:39.360 回答