2012-09-21 15 views
16

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

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

क्या कोई जानता है कि इसे कैसे काम करना है?

उत्तर

25

तरल पदार्थ span3 साइडबार के साथ काम करने के लिए प्रत्यय के लिए, आपको चौड़ाई को क्लैंप करने और आकार बदलने के लिए कुछ जावास्क्रिप्ट जोड़ने की आवश्यकता होगी।

मैंने अभी यह काम करने के लिए थोड़ा जावास्क्रिप्ट फ़ंक्शन लिखा है।

बूटस्ट्रैप से this bug देखें।

/* 
* Clamped-width. 
* Usage: 
* <div data-clampedwidth=".myParent">This long content will force clamped width</div> 
* 
* Author: LV 
*/ 
$('[data-clampedwidth]').each(function() { 
    var elem = $(this); 
    var parentPanel = elem.data('clampedwidth'); 
    var resizeFn = function() { 
     var sideBarNavWidth = $(parentPanel).width() - parseInt(elem.css('paddingLeft')) - parseInt(elem.css('paddingRight')) - parseInt(elem.css('marginLeft')) - parseInt(elem.css('marginRight')) - parseInt(elem.css('borderLeftWidth')) - parseInt(elem.css('borderRightWidth')); 
     elem.css('width', sideBarNavWidth); 
    }; 

    resizeFn(); 
    $(window).resize(resizeFn); 
}); 
+3

यह सही समाधान – Benj

+0

सुरुचिपूर्ण समाधान है, बूटस्ट्रैप 3 में get.container, आपको अच्छी चिपकने वाली स्टैक्ड नेविबार –

+1

रखने की क्षमता देता है, आप यहां – Eric

4

उनकी वेबसाइट पर चिपकने वाला डेमो उत्तरदायी है, यह उम्मीद के अनुसार पृष्ठ के शीर्ष पर स्थित है। मोबाइल उपकरणों और छोटी स्क्रीन पर position:fixed सीएसएस संपत्ति एक व्यवहार्य विकल्प नहीं है ताकि कार्यक्षमता हटा दी जा सके।

+1

अपने जवाब के लिए धन्यवाद। हां डेमो उत्तरदायी है, लेकिन द्रव ग्रिड प्रणाली के साथ नहीं। और समस्या है। – Toki

+0

@ टोकी पूरी तरह से इस प्रश्न को भूल गया, केवल डाउनवोट के बाद आपका जवाब देखा:/... एक तरल सेटअप के साथ बूटस्ट्रैप एफ़िक्स प्लगइन का परीक्षण किया और यह नवीनतम बूटस्ट्रैप के साथ ठीक काम कर रहा है, जो मुझे लगता है कि वे एक मुद्दा था तय की। यहां एक डेमो है: http://jsbin.com/urinum/1 –

+0

@ एंड्रेस-इलिच: जिस डेमो में आप इंगित करते हैं वह संपत्ति/css/docs.css शामिल है, जिसमें विभिन्न उपकरणों के लिए विशिष्ट सिलाई होती है। ' (एट) मीडिया (अधिकतम-चौड़ाई: 767 पीएक्स) { .bs-docs-sidenav.affix { स्थिति: स्थिर; चौड़ाई: ऑटो; शीर्ष: 0; } ' –

1

आपको साइडबार के लिए चौड़ाई संपत्ति (या न्यूनतम-चौड़ाई) को स्पष्ट रूप से सेट करना होगा। यदि आप पेज एंड्रेस को इंगित करते हैं, तो वर्ग "बीएस-डॉक्स-सिडेनाव" की स्पष्ट चौड़ाई 228 पीएक्स है।

यह ".span3" वर्ग को ओवरराइड करता है और स्क्रॉल करते समय साइडबार को आकार देने से रोकता है।

यदि आप उस स्पष्ट चौड़ाई की घोषणा को हटाते हैं और पृष्ठ को स्क्रॉल करते हैं तो साइडबार आपके द्वारा अपने पृष्ठ में दिखाई देने वाली समस्या की तरह ही आकार बदलता है।

+7

लेकिन एक निश्चित चौड़ाई के साथ यह अब तरल पदार्थ नहीं है। – SPIELER

1

$(document).ready(function() { 
    setTimeout(function() { 
    $('.sidebar > *').affix({ 
     offset: { 
     top: function() { return $window.width() <= 980 ? 290 : 210 } 
     , bottom: 270 
     } 
    }) 
    }, 100) 
}); 

जहाँ आपके पेज की तरह है:

<div class="span2 navper"> 
    <ul class="nav nav-tabs nav-stacked" data-spy="affix"> 
    <li><a href="#">Homepage</a></li> 
    <li><a href="#">Homepage</a></li> 
    <li><a href="#">Homepage</a></li> 
    <li><a href="#">Homepage</a></li> 
    <li><a href="#">Homepage</a></li> 
    </ul> 
</div> 
संबंधित मुद्दे