2012-02-22 3 views
0

私はjQueryツールを使用しています。スクロール可能で、jQueryツールチェーンの例を作成しています(下のリンクを参照)。私は、ページインジケータの点で問題を修正しようとしています。この例では、ページインジケータが3番目のドットにあるときに右矢印をクリックすると、スライドが戻ってくるまで最初のドットが強調表示されるのではなく、遅延が発生します。ページインジケータが最初のドットにあるときに左をクリックすると、同じ問題が発生します。誰かがこの問題の修正を見つけましたか?jQueryツールスクロール可能なドット

http://flowplayer.org/tools/demos/scrollable/plugins/index.html

答えて

0

私はコードを調べて、ページ位置を計算する式はgetConf()。sizeに基づいて分割しています。このサイズは、必要なインデックスに対して1です。ここに修正があります。 jquery.tools.jsを開き、fn.navigatorを見つけます。今すぐbeforeSeeSeekを探してください。下記のif文を追加してください。

b.onBeforeSeek(function(a, b) { 
      setTimeout(function() { 
        var c = (b/j) , d = l().eq(c); 

        if ((b/j) == l().length){ 
         c = 0; 
         d = l().eq(c); 
        } 

        d.length && l().removeClass(h).eq(c).addClass(h); 
      }, 0) 
     }) 

これはグローバルな変更であり、jquery.toolsが正しい方向に私を指しているため

1

私はあなたがそのページの「チェーンプラグイン」のデモの話をしていると仮定します。

onBeforeSeekイベントを介して最初のドットアンカータグに「アクティブ」クラスを適用することで、これを修正することができます。このデモを使用すると、次のようなことがあります。

$("#chained").scrollable({circular: true, mousewheel: true}).navigator(); 

var scroller = $('#chained').data('scrollable'), 
    count = scroller.getItems().length; 

scroller.onBeforeSeek(function(event, index) { 
    if (index == count) $('div.navi').find('a').removeClass('active').eq(0).addClass('active'); 
} 

注:未テストです。

+0

感謝を提出変更することなく、これについて行くには良い方法があるかもしれません。現在作業中ですが、少し修正しました。今私が抱えている唯一の問題は、すべてのスクロール可能なインスタンスの.naviクラスが、私が使っているインスタンスの代わりにターゲットにされていることです。私はそれを( ".navi"、これ)に変更しようとしましたが、それは機能しませんでした。何か案は? – Collin

+0

確かに、コンテキストのコンテナdivを使ってください: '$( '#container')。find( '。navi')。find( 'a')...' – glortho

+0

Ahhh参照してください。残念ながら、スクロール可能な各インスタンスに対して一意のIDを設定する必要があります。これは、スクロール可能なすべてのページでグローバルに使用されるためです。私は一度作業コードを投稿します。 注:これらのIDをSharePoint Webパーツに適用します。 .attr( "id"、 "scroll" + scrollCount); – Collin

関連する問題