2010-10-26 9 views
5

बदलने के बिना एंकर पर जाएं एक पृष्ठ लोड करने पर मैं इसे यूआरएल बदलने के बिना #content पर जाना चाहता हूं।यूआरएल

मैंने सोचा कि मैं का उपयोग करने के

window.location.hash = "content"; 
window.location.replace("#content", ""); 

लेकिन #content अभी भी यूआरएल पर मौजूद है में सक्षम होगा।

कोई बेहतर तरीका?


संपादित करें:

इसके अलावा

window.location.hash = "content"; 
window.location.replace(window.location.toString().replace("#content", "")); 

की कोशिश की लेकिन यह एक पाश में ब्राउज़र भेजता है।

उत्तर

3

आप उस आईडी के साथ एंकर की ऊर्ध्वाधर स्थिति पा सकते हैं, और उसके बाद उस स्थिति पर स्क्रॉल करें।

+0

तो आसान। धन्यवाद! –

0

यह एक अच्छा एनीमेशन के साथ यह करना होगा:

<a href="#link">Click to scroll</a> 

<div id="link" style="margin-top: 1000px; height: 300px; background-color: blue; margin-bottom: 1000px"> 
    Click and scroll to this div without changing url! 
</div> 


<script> 
    $('a').on('click', function(e) { 
     // prevent default anchor click behavior 
     e.preventDefault(); 

     // store hash 
     var hash = this.hash; 

     if ($(hash).length) { 
      $('html, body').animate({ 
       scrollTop: $(hash).offset().top 
      }, 300, function() { 
       // Do something fun if you want! 
      }); 
     } 
    }); 
</script> 

Working JSFiddle