2013-05-17 7 views
8

यह वास्तविक jQuery प्लगइन नहीं है, लेकिन मेरी समस्या के लिए मुझे नहीं पता था कि कौन सा शीर्षक उचित था।जावास्क्रिप्ट/jQuery प्लगइन

यह "प्लगइन" है ->http://jsfiddle.net/djrikyx/GuumY/9/

3 यूट्यूब खिलाड़ी, कर रहे हैं पॉप की संभावना को उन्हें खींचने योग्य DIVs में साथ है और यह भी सही करने के लिए उन्हें कम से कम।

मैं केवल शब्दों के साथ अपनी समस्या की व्याख्या नहीं कर सकता, आपको इसे बेहतर समझने के लिए देखना होगा।

सबसे पहले, सभी 3 खिलाड़ियों को पॉपआउट करें, फिर उन्हें कम करें, वे दाईं ओर जाएंगे, प्रत्येक पिछले के नीचे।

फिर यदि आप बंद करने का प्रयास करते हैं, या बीच में या आखिरी में अधिकतम को अधिकतम करते हैं, तो आप देखेंगे कि सभी 30px के लिए जाएंगे।

मुझे पता है कि अब, कि क्या कर रहा है क्योंकि मुझे क्या करना है कि समारोह maximizePlayer (में लिखा था) और popinPlayer()

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}); 
    }); 
} 

का उपयोग कर रहा है कि नहीं करना चाहती। मैं चाहता हूं कि पहले व्यक्ति को हमेशा से 50px पर होना चाहिए, और दूसरा बस नीचे। तो अगर मैं बीच में बंद करता हूं, तो पहले स्थिति में रहेगा, और आखिरी बार बढ़ेगी, और अगर मैं आखिरी बंद कर दूंगा, तो कुछ भी नहीं होगा।

लेकिन मुझे सच में नहीं पता कि मैं क्या कर सकता हूं जो मैं चाहता हूं, इसलिए मैं यहां एक टिप/समाधान मांग रहा हूं।

उत्तर

3

मैंने इसे http://jsfiddle.net/Klors/GuumY/11/ पर बदल दिया जो काम करता है?

आपके function popinPlayer(elem) { में एक पंक्ति है जो सीएसएस top को 30 तक कम कर देता है, लेकिन यह देखने के लिए जांच नहीं करता कि यह 0 (या हटाए गए हैंडल के नीचे) है या नहीं।

तो मैं top = top > thisTop ? top-30: top; को top = top-30; बदल गया है और var thisTop = parseInt($uVH.css("top"), 10); में जोड़ा इससे पहले कि आप $uVH पर top रीसेट, काम करने के लिए लगता है जो।

+0

काम कर लगता है! मैं इसे अधिकतम प्लेयर() के लिए अनुकूलित भी करूंगा। और इसका परीक्षण करें। धन्यवाद! – Fr0z3n

+0

आप किस प्रकार के प्रदर्शन को अधिकतम करने के लिए 'अधिकतम खिलाड़ी') चाहते हैं? – Klors

+0

यह वही है, मैंने अनुकूलन कहा लेकिन वास्तव में अनुकूल नहीं है, मेरा बुरा, बस अपना संशोधन लागू करें। मैंने पहले ही यह किया है और यह सही है! आपका बहुत बहुत धन्यवाद! – Fr0z3n

0

आप कर सकते हैं:

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)); 
}  

maximizePlayer पर() प्रकार सभी $ ('। UiVideoHandleMin') और फिर बस करना है:

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

jsfiddle

संबंधित मुद्दे