मैं k अगले सादे जावास्क्रिप्ट उदाहरण अधिक तेज है अब यह पोस्ट थोड़ा पुराना है, लेकिन अभी भी बहुत उपयोगी है .. मैं बस एक jquery संस्करण (थोड़ा सा क्लीनर और कॉन्फ़िगर करने योग्य) जोड़ना चाहता था, लेकिन यह एंड्रयू डी उत्तर का एक संशोधित संस्करण है।
इस मामले में मैं दो वर्गों की जरूरत नहीं है, बजाय मैं एक किस स्थिति में div है और जब मैं एक निश्चित बिंदु (max_scroll) तक पहुँचने मैं वस्तु के लिए एक वर्ग जोड़ सकते हैं और उस वर्ग क्या उसमें बदलाव
बनाता है
नीचे जावास्क्रिप्ट (सभी डी दस्तावेज़ तैयार समारोह के अंदर किया)
<script type="text/javascript">
var max_scroll = 400; // this is the scroll position to start positioning the nav in a fixed way
$(document).ready(function(){
$(window).scroll(function() {
var navbar = $(".filterbutton");
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
if(scrollTop > max_scroll && !navbar.is(".filterbuttonFixed")) {
navbar.addClass("filterbuttonFixed");
// console.log("go floated");
}
else if(scrollTop < max_scroll && navbar.is(".filterbuttonFixed")) {
// console.log("return to normal");
navbar.removeClass("filterbuttonFixed");
}
}
});
</script>
है और यह मेरा नव-बार कंटेनर div
<div id="floatable-nav-bar" class="my-relative-position-class">
<nav class="page-menu">
<ul class="scroll-nav">
<li><a class="selected" href="#first">Section 1</a></li>
<li><a class="" href="#second">Section 2</a></li>
<li><a class="" href="#third">Section 3</a></li>
<li><a class="" href="#fourth">Section 4</a></li>
</ul>
</nav>
</div>
और पिछले लेकिन है कम से कम नहीं, मेरे नव-शुरु शैली
#floatable-nav-bar.nav_floated {
position:fixed;
top:1px;
left: 0;
width:100%;
text-align: center;
background: #EEE;
padding: 5px 0;
}
मैं जानता हूँ कि यह सबसे सरल उदाहरण नहीं है, लेकिन jQuery उपयोगकर्ताओं के लिए हो सकता है कि यह एक सरल तरीका है, और मुझे लगता है कि यह बेहतर है बस जोड़ सकते हैं और एक वर्ग को दूर करने के (कम से कम इसके लिए था मुझे)।
यह समाधान हर ब्राउज़र में बहुत झटकेदार झिलमिलाहट करता है। अधिकांश आधुनिक ब्राउज़र 'स्थिति: फिक्स्ड' का समर्थन करते हैं जो इसे करने का बेक्ड-इन सीएसएस तरीका है। – sohtimsso1970
हां, मैं अब इस समाधान का उपयोग नहीं करता हूं। वह उस समय निश्चित स्थिति निर्धारित करने के मेरे सीमित ज्ञान पर आधारित था। स्थिति का उपयोग कर समाधान: तय बेहतर हैं। –