5

ページに 2 つの iFrame があります。どちらも jQuery UI を使用してドラッグできます。両方の iFrame を同じスペースにドラッグすると、2 番目に読み込まれる iFrame が常に優先されます。最初の iFrame を覆い隠します。最初の iFrame を移動して 2 番目の iFrame の上にドロップすると、2 番目のフレームがカバーされ、その逆も同様に行われるように、iFrame を支配的な iFrame として設定する方法はありますか?

HTML:

<a class = 'expandorcollapse3' href = '#'>Web Page 1</a>
<br>
<a class = 'expandorcollapse4' href = '#'>Web Page 2</a>

<div id = 'iframetest1' style = 'display: none'>
      <iframe id = 'iframe1' src = 'http://www.wsj.com'></iframe></a></div>
<div id = 'iframetest2' style = 'display: none'>
      <iframe id = 'iframe1' src = 'http://www.wsj.com'></iframe></a></div>

CSS:

#iframe1 {width: 600px; height: 500px; border; 1px solid black; zoom: 1.00; -moz-transform: scale(0.65); -moz-transform-orgin: 0 0;
         -o-transform: scale(0.65); -o-transform-origin: 0 0; -webkit-transform: scale(0.65); -webkit-transform-origin: 0 0;}

#iframetest1 {width: 390px; height: 325px; margin: 10px; border-style: solid; border-width: 10px;}    

#iframetest2 {width: 390px; height: 325px; margin: 10 px; border-style: solid; border-width: 10px;}

Javascript:

$(document).ready(function(){
    $(".expandorcollapse3").click(function(){
        if($("#iframetest1").is(":hidden")){
            $("#iframetest1").show("slow");
            }
        else{
            $("#iframetest1").hide("slow");
            }
        });
    });

$(document).ready(function(){
    $(".expandorcollapse4").click(function(){
        if($("#iframetest2").is(":hidden")){
            $("#iframetest2").show("slow");
            }
        else{
            $("#iframetest2").hide("slow");
            }
        });
    });

$("#iframetest1").draggable({containment: "document"});
$("#iframetest2").draggable({containment: "document"});

ここでjsFiddleを参照してください

4

1 に答える 1

1

現在ドラッグされている要素が前面に移動するように、ドラッグ可能でスタックオプションを指定できます。

$("#iframetest1,#iframetest2").draggable({
    containment: "document",
    stack: 'div'
});

if/else ステートメントの代わりにトグル関数を使用してコードを短縮することもできます

$(document).ready(function() {
    $(".expandorcollapse3").click(function() {
        $("#iframetest1").toggle('slow');
    });
    $(".expandorcollapse4").click(function() {
        $("#iframetest2").toggle('slow');
    });
});

http://jsfiddle.net/nwu4Q/ </p>

于 2012-12-19T21:44:10.683 に答える