2010-10-21 40 views
17

मेरे पास निम्न स्क्रॉल स्क्रिप्ट है, जो पेज ठीक के चारों ओर स्क्रॉल करता है, ठीक उसी तरह काम करता है कि मैं इसे भी कैसे चाहता हूं।ब्राउज़र के शीर्ष से ऑफसेट करने के लिए JQuery स्क्रॉल?

$(function(){ 
    $('a[href*=#]').click(function() { 
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') 
     && location.hostname == this.hostname) { 
      var $target = $(this.hash); 
      $target = $target.length && $target || $('[name=' + this.hash.slice(1) +']'); 
      if ($target.length) { 
       var targetOffset = $target.offset().top; 
       $('html,body').animate({scrollTop: targetOffset}, 1000); 
       return false; 
      } 
     } 
    }); 
}); 

हालांकि, मैं शीर्ष अनदेखी करने के लिए इसकी आवश्यकता 200px कहना के रूप में मैं उस सामग्री को स्क्रॉल के पीछे पेज के शीर्ष पर एक निश्चित हैडर की है।

मतलब यह है कि जब मैं शीर्ष पर स्क्रॉल करता हूं तो यह सामग्री को निश्चित शीर्षलेख के पीछे स्क्रॉल करता है, इसलिए मैं इसे नहीं देख सकता, इसलिए मुझे शीर्षलेख के ठीक नीचे स्क्रॉल करने की आवश्यकता है .. इसलिए हेडर के नीचे शीर्ष के रूप में उपचार करने के लिए ब्राउज़र का मुझे लगता है ....

क्या यह किया जा सकता है क्योंकि यह बहुत आसान होगा?

किसी भी मदद

+0

धन्यवाद जाँच कर सकते हैं एक ही कारण के लिए इसे पूरा करें! – Robert

उत्तर

26

कुछ चाहेंगे करना है?

var targetOffset = $target.offset().top - 200; 

या अतिरिक्त ऑफसेट के लिए हेडर तत्व की ऊंचाई को पकड़ें।

var targetOffset = $target.offset().top - $("element").outerHeight(true); 
1

के लिए बहुत-बहुत धन्यवाद आप कुछ इस तरह इस्तेमाल कर सकते हैं अगर उर कोड पर शर्त यह है कि इस काम की तरह

//check if the absolute position is below header 
if ($('#IdOfTheScrollElement').position().top >= 200){ 
//scroll 
} 
else { 
//do nothing 
} 
+0

आपकी मदद के लिए धन्यवाद दोस्तों। मुझे यकीन नहीं है कि अगर वे काम करते हैं तो मुझे पता नहीं लगा कि कोड में उन्हें प्रभाव डालने के लिए कहां रखा जाए, धुंध के मामलों में मैंने सिर्फ स्क्रॉल तोड़ दिया :( – Jezthomp

0

कोड ठीक है, आपको बस अपने निश्चित शीर्षलेख की ऊंचाई को हटाने की आवश्यकता है, उदाहरण के लिए यदि यह 200px है। यह पूरी तरह से काम करेगा।

$('html,body').animate({scrollTop: (targetOffset().top)-200}, 1000); 

आप भी इस जब एक बटन क्लिक

$(function() { 

$('a[href*=#]:not([href=#])').click(function() { 

    // Check height of the header and padding 
    var header_height = $('.header').outerHeight(); 

अपने से निकालें ऑफसेट कैसे समझने की कोशिश कर सारी रात इस सवाल पूछने के लिए संघर्ष किया गया के लिए

$('html,body').animate({scrollTop: (targetOffset().top) - header_height }, 1000); 
संबंधित मुद्दे