-4

私はこれらの変数を持っています:

var menuItem_place = 0;
var menuItem_position = 0;
var menuItem_limit = parseInt($('.slideshowImage').length) - 1;

これらは、私が持っているスライドショーの重要な変数です。css プロパティといくつかのアニメーション化された要素を変数に関連付ける必要がありますmenuItem_place

例えば:

if(slideshowItem_place = 0){
  $(this).({'background-color':'black'}, 150);
}

if/else をいろいろ試してみましたがうまくいきません。完全なコンテキスト - FIDDLE

4

1 に答える 1

0

残念ながら、コールバックを変数にアタッチすることはできません。コールバックは、予測不可能な方法で発生する何か (一般的にはユーザー入力) に対してのみ使用されます。変数を使用すると、コードが変数を使用している場所をいつでも追跡できます。

本当に探しているのは、これらの変数が変更される一般的な場所です。つまり、メニュー項目がアニメーション化される場所です。clickイベントの各コールバックを見ると、それぞれがmenu_animateClick();最後に呼び出されていることがわかります。おそらく、ここで変更を加える必要があります。

最初の行は、すべてのメニュー項目を元のサイズにリセットします。

contents.animate({margin: 20, height: '64%', lineHeight: '63px'}, 300);

2 行目は、選択したメニュー項目を拡大します。

$(contents.get(menuItem_place)).stop().animate({margin: 0, height: '100%', lineHeight: '99px'}, 100); 

3 行目は、メニューを移動する必要があるピクセル数を計算します。

menuItem_position = 0 - (menuItem_place * 200);

そして最後の行は、実際にメニューを選択されたメニュー項目に移動します:

$('#menuContainer').stop().animate({left: menuItem_position + 'px'}, 300);

その関数では、スニペット$(contents.get(menuItem_place))を使用して現在のメニュー項目のコンテンツを取得し、単にすべてのcontentsメニュー項目のコンテンツを取得します。選択したメニュー項目を黒に設定するには、次のようにします。

$(contents.get(menuItem_place)).stop().css('background-color', 'black').show(100);

元の色に戻すにはまだ工夫が必要ですが!

于 2013-04-22T19:40:03.033 に答える