2014-12-05 6 views
5

मैं नेविगेशन बार पारदर्शी होना चाहता हूं लेकिन जब आप पृष्ठ को स्क्रॉल करते हैं तो यह उदाहरण के लिए लाल रंग में बदल जाता है।जब आप पृष्ठ को स्क्रॉल करते हैं तो नेविगेशन बार कैसे रंग बदलते हैं?

<div class="nav"> 
     <div class="container"> 
     <div class="logo"> 
     <a href="#"><img src="RepublicSquare_logo.svg" style="height: 80px;"></a> 
     </div> 
     <div class="navMain"> 
      <ul> 
       <li><a href="#">Home</a></li> 
       <li><a href="#">About</a></li> 
       <li><a href="#">Services</a></li> 
       <li><a href="#">Portfolio</a></li> 
       <li><a href="#">Contact</a></li> 
      </ul> 
     </div> 
     </div> 
    </div> 

उत्तर

12

कुछ इस तरह:

http://jsfiddle.net/qrhjdfmd/

var a = $(".nav").offset().top; 

$(document).scroll(function(){ 
    if($(this).scrollTop() > a) 
    { 
     $('.nav').css({"background":"red"}); 
    } else { 
     $('.nav').css({"background":"transparent"}); 
    } 
}); 
+0

इसके लिए धन्यवाद। क्या आप जानते हैं कि इसे रंग में कैसे फेंकना है न सिर्फ दिखाना? – user3218008

+1

इस तरह सीएसएस संक्रमण संपत्ति जोड़ें: http://jsfiddle.net/qrhjdfmd/। कृपया, अगर यह उपयोगी है तो मेरे उत्तर को सही के रूप में चिह्नित करें। – KaMZaTa

+0

प्रश्न का उत्तर देने के लिए समय निकालने के लिए धन्यवाद। $ (Document) .ready (function() { वर scroll_start = 0; वर startchange = $ ('एनएवी।'); var: इस jQuery के साथ;: {1s संक्रमण अवधि} .nav - मैं इस का इस्तेमाल किया ऑफसेट = startchange.offset(); $ (दस्तावेज़) .scroll (फ़ंक्शन() { scroll_start = $ (यह) .scrollTop(); अगर (scroll_start> offset.top) { $ ('nav') .css ('पृष्ठभूमि रंग', 'RGBA (34,34,34,0.9)'); } else { $ ('एनएवी।') सीएसएस ('पृष्ठभूमि रंग', 'पारदर्शी');। } }); }); – user3218008

1

अगर कोई एक गैर jQuery समाधान की तलाश में (वेनिला js) हो सकता है, यहाँ यह है:

document.addEventListener("DOMContentLoaded", function() { 
    var scrollStart = 0; 
    var nav = document.querySelector(".nav"); 
    var offset = navbarElement.getBoundingClientRect(); 

    document.onscroll = function (e) { 
     scrollStart = e.target.scrollingElement.scrollTop; 
     if (scrollStart > offset.top) { 
      nav.style.background-color, rgba(34,34,34,0.9); 
     } else { 
      nav.style.background-color = "transparent"; 
     } 
    }; 
}); 
0

ओपी द्वारा समाधान।

Jquery

$(document).ready(function(){  
    var scroll_start = 0; 
    var startchange = $('.nav'); 
    var offset = startchange.offset(); 
    $(document).scroll(function() { 
     scroll_start = $(this).scrollTop(); 
     if(scroll_start > offset.top) { 
      $('.nav').css('background-color', 'rgba(34,34,34,0.9)'); 
     } else { 
      $('.nav').css('background-color', 'transparent'); 
     } 
    }); 
}); 

सीएसएस

.nav { 
transition-duration: 1s; 
} 

यह आपके नेविगेशन पारदर्शी बनाना चाहिए और जब आप स्क्रॉल यह RGBA के लिए बदल जाएगा (34,34,34,0.9)

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