2012-08-10 12 views
25

उदाहरण कोड:बूटस्ट्रैप: एक मोडल संवाद में, मैं ड्रॉपडाउन मेनू को संवाद के बाहर कैसे विस्तारित करूं?

http://jsfiddle.net/vpg5g/

मैं मेनू बटन से नीचे चला जाता है मोडल की सीमाओं से अधिक का विस्तार करना चाहते हैं। जैसा कि आप देखते हैं, वर्तमान स्थिति अनुपयोगी है। क्या इसे हासिल करने का कोई तरीका है?

+1

की तरह कुछ कर सकते हैं? –

+1

ड्रॉपडाउन मेनू में आइटमों की संख्या गतिशील है, इसलिए मुझे आवश्यक स्थान की गणना करना होगा। अगर मैं ऐसा करता हूं, तो मैं सीधे संवाद को सीधे लिंक भी लिख सकता हूं, जो वास्तव में मैं नहीं चाहता हूं। – flyx

उत्तर

27

मोडल किसी भी उमड़ती है, तो आप का उपयोग करके इसे ठीक कर सकते हैं अनुमति नहीं देता:

.modal { overflow: visible; } 
.modal-body { overflow-y: visible; } 

Working demo

आप केवल क्रियार्थ द्योतक है कि वास्तव में इसकी जरूरत को उन नियमों को लागू करने के एक वर्ग को जोड़ने के लिए चाहते हो सकता है, अगर यह फिक्स बग बनाता है।

+1

यदि आपके पास ऐसे संवाद हैं जिनमें सामग्री है जो आम तौर पर संवाद को स्क्रॉल करने का कारण बनती है (दूसरे शब्दों में, सामग्री का एक कटोरा), तो सामान्य रूप से स्क्रॉल करने वाली सामग्री अब संवाद को बहती रहेगी। – villecoder

+0

@villecoder आपको किसी बिंदु पर मोडल की ऊंचाई समायोजित करना पड़ सकता है, और मोडल के अंदर स्क्रॉल की बजाय विंडो की स्क्रॉल को ट्रिगर करना पड़ सकता है। – Sherbrow

+0

@ शेरब्रो विंडो के स्क्रॉल को ट्रिगर कैसे करें? –

3

आप अतिप्रवाह नहीं निकाल सकते हैं: ऑटो आप क्यों नहीं बस मॉडल संवाद बड़ा इस

$('.drop-down-inside-modal').on('click' , '.dropdown-toggle', function(event){ 
     var self = $(this); 
     var selfHeight = $(this).parent().height(); 
     var selfWidth = $(this).parent().width(); 
     var selfOffset = $(self).offset(); 
     var selfOffsetRigth = $(document).width() - selfOffset.left - selfWidth; 
     var dropDown = self.parent().find('ul'); 
     $(dropDown).css({position:'fixed', top: selfOffset.top + selfHeight , left: 'auto', right: selfOffsetRigth , width: '160px'}); 
    }); 

    function fixDropdownPosition(){ 
     var openDropdownButton = $('.drop-down-inside-modal.open'); 
     if($(openDropdownButton).length){ 
      var selfHeight = $(openDropdownButton).height(); 
      var selfWidth = $(openDropdownButton).width(); 
      var openDropdownButtonOffset = $(openDropdownButton).offset(); 
      var openDropdownButtonOffsetRigth = $(document).width() - openDropdownButtonOffset.left - selfWidth; 
      var openDropdown = $(openDropdownButton).find('ul'); 
      $(openDropdown).css({position:'fixed', top: openDropdownButtonOffset.top + selfHeight , left: 'auto' , right: openDropdownButtonOffsetRigth, width: '160px'}); 
     }; 
    }; 

    $(".modal-body").unbind("scroll"); 
    $(".modal-body").scroll(function(){ 
     fixDropdownPosition(); 
    }); 

    $(window).resize(function() { 
     fixDropdownPosition(); 
    }); 
+0

उपवास के लिए धन्यवाद! खुशी है कि किसी के लिए इसका उपयोग ढूंढें =) – ppollono

+0

यह एक बदसूरत समाधान है और उपयोग करने योग्य होने के लिए बहुत सारे फिक्सिंग की आवश्यकता है, लेकिन आखिरकार यह एकमात्र दृष्टिकोण था जिसने हमारे लिए काम किया। – minexew

+0

मुझे पता है कि यह हैकी है! लेकिन ठीक काम करता है, शायद मैं इसे एक लाइव उदाहरण के साथ अद्यतन कर सकता हूं। – ppollono

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