0

私はcordova2.1.0を使用したIOSアプリ開発で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; that.y = that.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 プロパティでこれらすべてのことを行うこともできます;)

更新: destroy 関数にも気付きました。スクローラーを「完全にクリア」したい場合に便利です。しかし、物理的に作成されたスクロールバーを削除するコードは見当たりませんでしたが、よくわかりません。

于 2012-10-16T09:12:39.360 に答える