2012-03-21 9 views
3

私は2つの要素をZ-インデックス値を交換しようとしています。2つの要素間にCSS属性スワッパを作成するにはどうすればよいですか?

function zSwapper (beneathElement,underneathElement) { 
    var beneathElementZ = $(beneathElement).css('z-index'); 
    var underneathElementZ = $(underneathElement).css('z-index'); 

    $(beneathElement).css({'z-index': underneathElementZ}); 
    $(underneathElement).css({'z-index': beneathElementZ}); 
} 

しかし、私は最初の要素のzインデックスを変更すると、第二は、それが初めに持っていた1の代わりに、その値を取るので、動作していないよう:ここで私はこれまで持っているものです。したがって、両方の要素は、値を交換する代わりに、同じZ-インデックスを持つことになります。これが成就できる方法はありますか?

編集:これは実際には以下のように指摘されていますが、これは実際には動作しているようです:http://jsfiddle.net/xGPx2/2/、私のコードにはいくつかの問題があります。私は少なくとも誰かがこれが有用であることを願っています。

+0

ルックを参照してください、あなたのコードをテストしました。それはあなたのコードです、それは動作します! – jb10210

答えて

2

あなたのコードが正常に動作する必要があり、多分それは、関連する多くのCSSですか?
私はこの[jsFiddle](http://jsfiddle.net/xGPx2/2/)でjsFiddle

+0

うわー、ありがとう。私のコードには別の問題があるようです...私は今、それを理解しようとしています。 – CCrawler

+0

@CCrawlerは要素がすべて配置されるべきであることを忘れないでください:position:absolute、position:relative、またはposition:fixedそうでなければ、Z-インデックスは何の効果もありません – jb10210

+0

ええ、すべての要素が適切に配置されています。それは視覚的な問題ではない、私は実際に両方の要素が関数から同じ値を取得していることを見ている..それは問題がそこにあったと思った理由です:P – CCrawler

0

次の2つの要素

+0

ええ、私は異なるZ-インデックス値を持つ多くの要素を持っているので、私が望む要素のペアを使って、それらの値を交換できる移植可能な関数です。 – CCrawler

2

間の交流はCSSの属性を設定するときにオブジェクトを使用しますが、two argumentsしない可能性があり、別のクラスを持つことができます。

function zSwapper (beneathElement,underneathElement) { 
    var beneathElementZ = $(beneathElement).css('z-index'); 
    var underneathElementZ = $(underneathElement).css('z-index'); 

    $(beneathElement).css('z-index', underneathElementZ); 
    $(underneathElement).css('z-index', beneathElementZ); 
} 

Check this example

+0

Mhh、それは何も変わらないようです。彼らはまだそれらを交換するのではなく、同じZ-インデックス値を持つことになります。 – CCrawler

+0

これは質問のコードとまったく同じ効果を持つはずです。 – jb10210

+0

私は働いている例を追加しました。 (関数呼び出しをコメントし、2つのquaresはzインデックスを拡張していません)。 まだ動作していない場合は、CSSの問題である可能性があります。スタッキングコンテキストで何か? http://www.vanseodesign.com/css/css-stack-z-index/ –

関連する問題