jQuery accordion scroll na začetek
 
mat3 11. sep 2014 17:48:31 Pridružen od:
24. nov 2011
77 objav
16 6 1
#1

Imam temo za Wordpress, katera ima tudi jQuery kodo za accordion vnose (harmonika). Ti lepo delujejo, moti pa me to, da se ob odprtju vnosa z daljšim tekstom stran (scroll) ne postavi na začetek besedila. Zanima me, če ima kdo kakšen nasvet oz. če bi bil kdo pripravljen to prilagoditi, za plačilo seveda. Bistveni del kode jQuery je tak:


jQuery(".accordion_title").click(
function() {
jQuery(this).siblings('.accordion_content').slideUp("fast");
jQuery(this).siblings('.accordion_title').removeClass('accordion_active');
if(jQuery(this).hasClass('accordion_active')) {
jQuery(this).removeClass('accordion_active');
} else {
jQuery(this).addClass('accordion_active');
jQuery(this).next('.accordion_content').slideDown("fast");
}
}
);
všeč(0) ni všeč(0) spam(0)
 
krifa 11. sep 2014 19:27:00 Pridružen od:
9. feb 2010
402 objav
401 54 6
#2

Tole bi moralo delati:


jQuery(".accordion_title").click(
function() {
jQuery(this).siblings('.accordion_content').slideUp("fast");
jQuery(this).siblings('.accordion_title').removeClass('accordion_active');
if(jQuery(this).hasClass('accordion_active')) {
jQuery(this).removeClass('accordion_active');
} else {
jQuery(this).addClass('accordion_active');
jQuery(this).next('.accordion_content').slideDown("fast");
jQuery('.accordion_active').animate()
jQuery('html, body').animate({
scrollTop: jQuery(".accordion_content").offset().top - 10
}, 300);
}
}
);
všeč(4) ni všeč(0) spam(0)
Prevajanje - prevajalska agencija pravo-prevajanje.si
Awesome jobs for awesome people: Dlabs jobs
 
krifa 11. sep 2014 23:46:11 Pridružen od:
9. feb 2010
402 objav
401 54 6
#3

Da ne bova preko private msg-jev in da ostane še za zanamce :)... malo sem se zatipkal, tukaj imaš popravljeno kodo:


jQuery(".accordion_title").click(
function() {
jQuery(this).siblings('.accordion_content').slideUp("fast");
jQuery(this).siblings('.accordion_title').removeClass('accordion_active');
if(jQuery(this).hasClass('accordion_active')) {
jQuery(this).removeClass('accordion_active');
} else {
jQuery(this).addClass('accordion_active');
jQuery(this).next('.accordion_content').slideDown("fast");
jQuery('.accordion_active').animate()
jQuery('html, body').animate({
scrollTop: jQuery(".accordion_active").offset().top - 10
}, 300);
}
}
);

Če ti še to ne bo najbolje delalo, probaj skopirat animate funkcijo v finish event od jQuery(this).next('.accordion_content').slideDown("fast");


všeč(4) ni všeč(0) spam(0)
Prevajanje - prevajalska agencija pravo-prevajanje.si
Awesome jobs for awesome people: Dlabs jobs
 
mat3 12. sep 2014 07:43:35 Pridružen od:
24. nov 2011
77 objav
16 6 1
#4

Sej na koncu sem tako ali tako mislil objavit rešitev še tu, da ostane še za koga drugega. Sem proval s to zadnjo kodo in je isto, kot prej. Za tiste vnose, kjer je več vsebine, se še vedno ne premakne (dovolj) na začetek odprtega accordiona. Kje pa je potem finish event, ker te vrstice so edine za accordion v .js datoteki ?


všeč(0) ni všeč(0) spam(0)
 
mat3 16. sep 2014 09:11:54 Pridružen od:
24. nov 2011
77 objav
16 6 1
#5

Evo, da objavim še končno rešitev:


jQuery(".accordion_title").click(
function() {
jQuery(this).siblings('.accordion_content').slideUp("fast");
jQuery(this).siblings('.accordion_title').removeClass('accordion_active');
if(jQuery(this).hasClass('accordion_active')) {
jQuery(this).removeClass('accordion_active');
} else {
jQuery(this).addClass('accordion_active');
jQuery(this).next('.accordion_content').slideDown("fast", function(){
jQuery('html, body').animate({
scrollTop: jQuery(".accordion_active").offset().top - 10
}, 300);
});
}
}
);

Najlepša hvala uporabniku @krifa za vso pomoč in njegov čas.


všeč(1) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se