3

これが私のセットアップです。私のページには2つの列があります。左の列の内側にはアコーディオンがあり、その下にはリンク付きのテキストがあります。右の列には、左の列のテキスト内のリンクによって制御されている写真がいくつかあります。画像はスクロールできます。

私のページには、正常に動作するアコーディオンがあり、このように設定されています

$( "#accordion" ).accordion({
    autoHeight: false,
    navigation: true,
    change: function(event, ui) { dynamicOffsetValue(); }/*This here call's the dynamicOffsetValue function after the accordion has finished animation*/
});

次に、アコリドンに巻き付けられたdivの高さを与える関数があります

function dynamicOffsetValue()
{
    var top = $("#accordion").height();/*IF I ALERT THIS THEN IT GIVES ME THE NUMBER I NEED*/
}

dynamicOffsetValue();

次に、右の列の画像用に localscroll プラグインをセットアップします。

  var scrollOptions = {
      target:div#overflow, /* the element that has the overflow and contains images*/
      offset:500,/*HOW TO I MAKE THIS EQUAL TO dynamicOffsetValue ???*/
      axis: 'xy',
      duration: 50,  
      easing: 'swing'
    };

$('.scrollContainer').localScroll(scrollOptions);/*.scrollContainer(this element wraps both left and right column) */

現在、ページが読み込まれ、最初のアコーディオンが開いていて、ユーザーが text 内のリンクをクリックすると、画像が必要な場所にスクロールされます。しかし、アコーディオンが別の状態で開いている場合、オフセット値 500 では不十分です。

ユーザーがアコーディオンをクリックすると、dynamicOffsetvalue が scrollOptions に送信され、ユーザーがテキスト内のリンクをクリックすると (これにより localscroll が起動されます)、新しいオフセット値が読み取られるようにするにはどうすればよいでしょうか?

これがすべて意味をなすことを願っています。:)

4

2 に答える 2

0

オフセットを設定する代わりに、リンク ( ) でアンカーを使用してhref="#my_id"、それらの ID を必要な画像に追加してみませんか?

于 2012-05-20T20:09:41.560 に答える
0

いつものように、この質問を投稿してからしばらくすると、答えが返ってきました (2 日間いじっていました)。

これが私の最終設定です。私の問題は、テキスト内のリンクにページの読み込み時にのみ localscroll が割り当てられたため、 scrollOptions への更新が無視されたことだと思います。しかし、すべての localscroll セットアップを dynamicOffset 関数内に移動したので、アコーディオン セクションがクリックされるたびにそれ (localscroll) が再割り当てされ、新しい更新されたオフセット値が読み取られます。

    $( "#accordion" ).accordion({
        autoHeight: false,
        navigation: true,
        change: function(event, ui) { dynamicOffsetValue(); }/*This here call's the dynamicOffsetValue function after the accordion has finished animation*/
    });


    function dynamicOffsetValue()
    {
        var top = $("#accordion").height();/*IF I ALERT THIS THEN IT GIVES ME THE NUMBER I NEED*/

          var scrollOptions = {
          target:'div#overflow', /* the element that has the overflow and contains images*/
          offset:top,/*THIS NOW EQUALS TOP*/
          axis: 'xy',
          duration: 50,  
          easing: 'swing'
        };

    $('.scrollContainer').localScroll(scrollOptions);/*.scrollContainer(this element wraps both left and right column) */

    }

    dynamicOffsetValue();
于 2012-05-21T05:58:07.163 に答える