2016-10-05 5 views
0

Ich habe eine Hauptseite namens index.html mit einem Menü, das auf bestimmte Positionen (Teile) auf dieser Hauptseite verlinkt. Dies geschieht über die Variable 'Daten-Folie' (siehe unten), die hinter den 'Buttons' im Menü steht. Dies funktioniert gut auf der Hauptseite. Wie kann ich das tun, wenn ich auf einer anderen HTML-Seite als der Hauptseite bin und zu einer bestimmten Position (Teil) der Hauptseite spring?Verknüpfen mit einer bestimmten Position einer anderen Seite

<div id="nav" class="right"> 
     <ul class="navigation"> 
      <li data-slide="1">Home</li> 
      <li data-slide="2">Products</li> 
      <li data-slide="4">Trade fairs</li> 
      <li data-slide="6">Company</li> 
      <li data-slide="8">Careers</li> 
      <li data-slide="10">Contact</li> 
      <li class="clear"></li> 
     </ul> 
    </div> 

Javascript:

var links = $('.navigation').find('li'); 
slide = $('.slide'); 
button = $('.button'); 
mywindow = $(window); 
htmlbody = $('html,body'); 

slide.waypoint(function (event, direction) { 

    dataslide = $(this).attr('data-slide'); 

    if (direction === 'down') { 
     $('.navigation li[data-slide="' + dataslide + '"]').addClass('active').prev().removeClass('active'); 
     $('.navigation li[data-slide="1"]').removeClass('active'); 
    } 
    else { 
     $('.navigation li[data-slide="' + dataslide + '"]').addClass('active').next().removeClass('active'); 
    } 
}); 

mywindow.scroll(function() { 
    if (mywindow.scrollTop() == 0) { 
     $('.navigation li[data-slide="1"]').addClass('active'); 
     $('.navigation li[data-slide="2"]').removeClass('active'); 
    } 
}); 

function goToByScroll(dataslide) { 
    var goal = $('.slide[data-slide="' + dataslide + '"]').offset().top; 
    if (mywindow.scrollTop()<goal) { 
     var goalPx = goal + 1; 
    } else { 
     var goalPx = goal - 1; 
    } 
    htmlbody.animate({ 
     scrollTop: goalPx 
    }, 2500, 'easeInOutQuint'); 
} 

links.click(function (e) { 
    e.preventDefault(); 
    dataslide = $(this).attr('data-slide'); 
    goToByScroll(dataslide); 
}); 

button.click(function (e) { 
    e.preventDefault(); 
    dataslide = $(this).attr('data-slide'); 
    goToByScroll(dataslide); 

}); 
+0

können Sie nicht nur manuell "Trigger" ein Klick auf Ereignis auf den entsprechenden Link oder Button? http://api.jquery.com/trigger/ – lps

+2

Dies könnte helfen http://stackoverflow.com/questions/21600425/navigate-to-anchor-on-onother-page –

Antwort

0
window.setTimeout(function(){ 
    if(window.location.hash){ 
     var $target = $(window.location.hash).closest("#bgaboutbody"); 
     if($target.length) 
      $('html, body').animate({scrollTop: $target.offset().top}, 1000); 
    } 
}, 100); 

Bitte versuchen Sie diesen Link: - anchor linking to a certain position of the page

+0

Sorry, aber können Sie Ihren Tipp ein wenig erklären Mehr? – Cappa

Verwandte Themen