Hallo folkfreund,
das ganze passiert schon auf einem Onepager (benutze die Erweiterung onepagewebsite, aber mit einem anderen Javascript - onepagenav).
Die Links sind relativ weit oben auf der Webseite, die Accordeons mit Abstand darunter. Wenn man nun oben auf einen Link klickt, scrollt die Seite runter bis zum Accordeon, welches aber nun schon offen ist. Schön wäre es, wenn es bis zum Accordeon scrollt und sich erst dann das Accordeon öffnet. Wäre ein schöner Effekt.
Schönen Abend,
Christian
Edit: Die Sache mit dem Timer: Das muss gar nicht so kompliziert sein. Meine "Funktion" "befeuert" nicht direkt das Accordeon, sondern wartet auf einen Trigger. Wenn die Seite "fertig gescrollt ist" ist das Accordeon am oberen Ende des Viewports und das kann man abfangen, Stichwort Sticky Menu. Das wäre dann auch gleich der Trigger.
abgewandeltes Sticky Menu ganz grob:
Code:
$(window).scroll(function(){
if( $(window).scrollTop() > #accordeon-wrapper #name1 ) {
$('#accordeon-wrapper #name1 .toggler').click();}
Das müsste dann aber auch am besten mit Variablen laufen...
Zu den Variablen für das Öffnen der Accordeons:
Die Links haben alle .link.
Wenn jetzt auf das Element .link a geklickt wird, dann muss die Funktion die Klasse die das Element hat als Variable "anchorlink" nehmen (.name1, .name2 oder .name3), dann einmal hier einfügen:
Code:
$('#link-wrapper .anchorlink a').on('click', function(event)
und einmal ohne Punkt und dafür mit #hier einfügen:
Code:
$('#accordeon-wrapper #anchorlink .toggler').click();
Zusammen mit dem "Timer" ganz ganz grob (die dritte und vierte Zeile ist die große Frage):
Code:
jQuery(function ($) {
$('#link-wrapper .link a').on('click', function(event){
var anchorlink = $(this).attr("href");
anchorlink = anchorlink.substring(1);
$('#link-wrapper .anchorlink a').on('click', function(event){
$(window).scroll(function(){
if( $(window).scrollTop() > #accordeon-wrapper #anchorlink ) {
$('#accordeon-wrapper #anchorlink .toggler').click();}
Könnte das so funktionieren?
Lesezeichen