2013-05-17 4 views
8

実際のjQueryプラグインではありませんが、私の問題ではどのタイトルが適切かわかりませんでした。Javascript/jQueryプラグイン

これは、「プラグイン」である - >http://jsfiddle.net/djrikyx/GuumY/9/

あり3 YouTubeのプレイヤーはドラッグ可能なdiv要素にポップの可能性が出て彼らと、であり、また右にそれらを最小限に抑えます。

私は言葉だけで私の問題を説明することはできません、あなたは理解するためにそれを見なければなりません。

まず、3人のプレーヤー全員をポップアウトし、最小化して、それぞれのプレーヤーを右に移動します。

次に、中央または最後に1つを閉じる、または最大化しようとすると、すべてが30ピクセル上になることがわかります。

var countMP = $('.uiVideoHandleMin').length; 
uVC.removeClass('uiVideoContainerMin'); 
if(countMP > 0){ 
    $('.uiVideoHandleMin').each(function(){ 
     var top = parseInt($(this).css('top'), 10); 
     top = top-30; 
     $(this).css({top:top}); 
    }); 
} 

を使用して、私は今、私は関数内maximizePlayer(ということをやって書いたので、ことをやっていることを知っている

popinPlayer()私はそれを望んでいません。私は最初のものが常に上から50pxで、他のものはちょうど下でなければならないようにしたい。だから、もし私が中間のものを閉じると、最初のものはその位置に留まり、最後のものは上がり、最後のものを閉じると何も起こりません。

しかし、私は本当に私が望むことができるか分からないので、私はここでチップ/ソリューションを求めています。

答えて

3

これをhttp://jsfiddle.net/Klors/GuumY/11/に変更しましたか?

function popinPlayer(elem) {には、topのコードが30だけ減らされていますが、最初に0(または削除されたハンドルの下)かどうかはチェックされません。

だから私は仕事に思われる、top = top > thisTop ? top-30: top;top = top-30;を変更し、あなたが$uVHtopをリセットする前var thisTop = parseInt($uVH.css("top"), 10);に追加しました。

+0

が働いているようです!私はmaximizePlayer()のためにそれを適応させます。そしてそれを試してみてください。ありがとうございました! – Fr0z3n

+0

maximizePlayer()がどのような動作をしたいのですか? – Klors

+0

それは同じですが、私は適応するが、実際には適応しない、私の悪い、ちょうどあなたの変更を実装します。私はすでにそれをして、それは完璧です!どうもありがとうございました! – Fr0z3n

0

あなたが行うことができます。maximizePlayer上

function SortByTop(a, b){ 
     var aTop = parseInt($(a).css('top'), 10); 
     var bTop = parseInt($(b).css('top'), 10); 
     return ((aTop < bTop) ? -1 : ((aTop > bTop) ? 1 : 0)); 
}  

は()ソートすべての$(」。uiVideoHandleMin')、その後、ちょうど行うには:

$.each(minarray,function(i,n){ 
     $(this).css({top:(i*30)}); 
});  

jsfiddle