0

Vimeo ユニバーサル埋め込み (iframe バージョン) をフェードアウトして一時停止し、別のものをフェードインして自動再生したいと考えています。私のコードは最初のビデオをフェードアウトして一時停止しますが、すぐに新しいビデオを (フェードなしで) 取り込み、自動再生しません。構文の問題だと思います。Vimeo API を制御するために froogaloop js ライブラリを使用しています。

アイデア?ご協力いただきありがとうございます!

HTML:

    <div id="fire" class="vim">
        <iframe id="regular" class="vid" src="http://player.vimeo.com/video/22327264?api=1&amp;title=0&amp;byline=0&amp;portrait=0&amp;color=ffffff"></iframe>
        <iframe id="behind" class="vid" src="http://player.vimeo.com/video/22466069?api=1&amp;title=0&amp;byline=0&amp;portrait=0&amp;color=ffffff"></iframe>
        <p style="float:left">
            "Sound of Fire"<br />
            This Century<br />
            Warner Brothers Records
        </p>
        <p id="bts" style="float:right;color:#000000;cursor:pointer;">
            &nbsp;<br />
            Click to launch the "Sound of Fire" behind the scenes video!<br />
            &nbsp;
        </p>
    </div>

JavaScript:

    $('#behind').hide();
    $('#bts').click(function() {
        $('#regular').fadeOut(400);
        var player=$f($('.vid:visible')[0]);
        player.api('pause');
        $('#behind').fadeIn(400);
        player.api('play');
    });
4

2 に答える 2

1

jQuery の.fadeIn().fadeOut()は、アニメーションの実行中にそれ以上のコードの実行をブロックしません。これは、ご覧のとおり、フェードアウトが始まるとすぐにプレーヤーが一時停止し、その直後にフェードインが開始され、プレーヤーの一時停止が解除されることを意味します。

アニメーションが完了したときに実行コードを使用する場合は、(オプションの) コールバック引数を使用する必要があります。

$('#bts').click(function() {
    $('#regular').fadeOut(400, function () {
        $f(this).api('pause');
        $('#behind').fadeIn(400, function () {
            $f(this).api('play');
        });
    });
});
于 2011-04-16T05:51:23.137 に答える
0

あなたが定義している

var player=$f($('.vid:visible')[0]);

同じvar playerでアクション(一時停止と再生)を行います

player.api('pause') player.api('play) `

ところで、このコードで何をしているのか

var player=$f($('.vid:visible')[0]);

アップデート

これがうまくいくことを願っています(生のコード)

$('#behind').hide();
$('#bts').live('click',function() {
    $('#regular').fadeOut(400,function(){
        $f(this).api('pause');
    });
    $('#behind:hidden').fadeIn(400,function(){
        $f(this).api('play');
    });      
})

注:@Matt Ballに感謝します

于 2011-04-16T05:37:39.023 に答える