2017-01-19 2 views
0

Ich habe dieses Problem auf Stackoverflow gesehen, aber der Code, der darin verwendet wurde, war anders und ich habe es nicht wirklich verstanden. Also möchte ich die Webseite zum div blättern lassen, wenn die Webseite von einer anderen Seite kommt.jQuery automatisch zu ID von verschiedenen Seite scrollen

$(document).ready(function(){ 
    // Add smooth scrolling to all links 
    $("a").on('click', function(event) { 

    // Make sure this.hash has a value before overriding default behavior 
    if (this.hash !== "") { 
     // Prevent default anchor click behavior 
     event.preventDefault(); 

     // Store hash 
     var hash = this.hash; 

     // Using jQuery's animate() method to add smooth page scroll 
     // The optional number (800) specifies the number of milliseconds it takes to scroll to the specified area 
     $('html, body').animate({ 
     scrollTop: $(hash).offset().top -70 
     }, 800, function(){ 

     // Add hash (#) to URL when done scrolling (default click behavior) 
     window.location.hash = hash; 
     }); 
    } // End if 
    }); 
}); 

Dieser Code funktioniert in der Homepage, scrollt reibungslos, aber es funktioniert nicht, wenn es von einer anderen Seite angeklickt wird.

+0

Was ist der Link zu dem Artikel, den Sie gefunden haben? Warum dies nicht funktioniert, klicken Sie auf eine andere Seite, die wiederum dieses Skript rendert, aber nicht den Bildlauf auslöst, da sich alles in Ihrem Klick-Handler befindet. – putvande

Antwort

0

Dadurch wird den Körper zum #someDiv oben versetzt scrollen, wenn Seite geladen wird: die referrer ist nicht http://www.example.com wenn

$(document).ready(function(){ 

    $('html, body').animate({ 
     scrollTop: $('#someDiv').offset().top - 70 
    }, 800); 

}); 

und diese:

$(document).ready(function(){ 

    if (document.referrer !== "http://www.example.com") { 
     $('html, body').animate({ 
      scrollTop: $('#someDiv').offset().top - 70 
     }, 800); 
    } 

}); 

und dies, wenn kommt von anderer Seite:

$(document).ready(function(){ 

    if(document.referrer != '' && document.referrer != location.href){ 
     $('html, body').animate({ 
      scrollTop: $('#someDiv').offset().top - 70 
     }, 800); 
    } 
}); 
Verwandte Themen