2015-07-15 12 views
5

मैं अपने पृष्ठ पर एक "चिपचिपा" नेविगेशन बनाने की कोशिश कर रहा हूं जहां उपयोगकर्ता को तत्व पर स्क्रॉल करने के बाद position:fixed; प्राप्त होता है। कार्यक्षमता अपेक्षित के रूप में काम कर रही है, लेकिन चिपचिपा वर्ग जोड़े जाने के बाद दो स्तंभों की चौड़ाई जो शीर्ष परिवर्तन तक चिपक जाती हैं। मैंने चिपचिपा तत्व के सीएसएस में width:100%; जोड़ने की कोशिश की, लेकिन फिर तत्व कंटेनर से आगे फैलता है।बूटस्ट्रैप - स्थिति का उपयोग कर कॉलम चौड़ाई बनाए रखना: तय?

मैं कैसे सुनिश्चित कर सकता हूं कि कॉलम चौड़ाई रहें जहां position:fixed; जोड़ा जाना चाहिए?

HMTL:

<div class="container"> 
    <div class="padding"></div> 
    <div class="anchor"></div> 
    <div class="row sticky"> 
     <div class="col-sm-6"> 
      Testing 
     </div> 
     <div class="col-sm-6"> 
      Testing 
     </div> 
    </div> 
    <div class="padding2"></div> 
</div> 

सीएसएस:

.padding { 
    height:250px; 
} 
.padding2 { 
    height:1000px; 
} 
.sticky { 
    background:#000; 
    height:50px; 
    line-height:50px; 
    color:#fff; 
    font-weight:bold; 
} 
    .sticky.stick { 
     position:fixed; 
     top:0; 
     z-index:10000; 
    } 

जे एस:

function stickyDiv() { 
    var top = $(window).scrollTop(); 
    var divTop = $('.anchor').offset().top; 
    if (top > divTop) { 
     $('.sticky').addClass('stick'); 
    } else { 
     $('.sticky').removeClass('stick'); 
    } 
} 

$(window).scroll(function(){ 
    stickyDiv(); 
}); 
stickyDiv(); 

JSFiddle

धन्यवाद!

+1

आप पृष्ठ लोड पर जावास्क्रिप्ट के साथ चिपचिपा तत्व की चौड़ाई हो रही है और तब तक यह कर सकता है जे एस के साथ तत्व की चौड़ाई सेट एक बार तय पोजीशनिंग जोड़ा जाता है। सुनिश्चित नहीं है कि यह सीधे एचटीएमएल/सीएसएस के साथ किया जा सकता है। – APAD1

उत्तर

3

फिक्स्ड स्थिति शरीर के सापेक्ष है, इसलिए यह शरीर की चौड़ाई से 100% चौड़ाई की गणना करेगा। यदि जावास्क्रिप्ट का उपयोग करना ठीक है, तो आप कंटेनर चौड़ाई प्राप्त करके चिपचिपा चौड़ाई सेट कर सकते हैं। Updated Fiddle

+0

धन्यवाद, यह समाधान बहुत अच्छा काम करता था और मैं जो सोच रहा था उसके आधार पर था। – user13286

+0

आपका स्वागत है। ;) –

1

मैं अपने कंटेनर को "कंटेनर-तरल पदार्थ" में सेट करके काम करने में सक्षम था, फिर चौड़ाई जोड़ना: 100%; आपकी .स्टिक कक्षा में।

2

ऐड:

width:inherit; 

अपने .sticky.stick

JSFiddle

तरह Nanang Mahdaen अल Agun ने कहा, एक निश्चित स्थिति से संबंधित है शरीर के लिए चौड़ाई के। Set width of a "Position: fixed" div relative to parent div

+0

बहुत अच्छा समाधान, दुर्भाग्य से 'चौड़ाई: वारिस' के साथ ब्राउज़र संगतता के कारण इस मामले में काम नहीं करेगा, लेकिन भविष्य के लिए ध्यान में रखेगा! – user13286

1

आप कंटेनर के चारों ओर एक 100% चौड़ाई आवरण जोड़ सकते हैं और इसके बजाय उस छड़ी हो सकता है: width:inherit; के साथ यह .container वर्ग

संदर्भ की चौड़ाई का उपयोग करेगा।

<div class="wrap"> 
    <div class="container sticky"> 
     <div class="row"> 
     ... 
     </div> 
    </div> 
</div> 

अद्यतन बेला: https://jsfiddle.net/mileandra/omeegfc7/

+0

यह अच्छी तरह से काम किया, धन्यवाद! – user13286

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