mit jQuery scrollen
Rainer
- javascript
Guten Morgen, und ja, ich weiss das es eine unnütze Spielerei ist. Trotzdem würde ich gern
Ich hab ein jQuery gefunden zum weichen scrollen. Leider verhindert es das direkte anspringen von Ankern da es auf alle Anker reagiert. Es soll aber nur auf #top und #bottom ansprechen. Die relevante Stelle ist dann wohl hier:
$('a[href*=#]').bind("click", function(event)
^^^^^^^
Kann man das entsprechend ändern oder ist das nicht möglich?
Gruß Rainer
$(document).ready(function() {
$('a[href*=#_]').bind("click", function(event) {
event.preventDefault();
var ziel = $(this).attr("href");
if ($.browser.opera) {
var target = 'html';
}else{
var target = 'html,body';
}
$(target).animate({
scrollTop: $(ziel).offset().top
}, 1500 , function (){location.hash = ziel;});
});
return false;
});
$('a[href*=#_]').bind("click", function(event) {
Sorry ^ ist nicht im Originalscript. War ein Versuch von mir..
@@Rainer:
nuqneH
Guten Morgen, und ja, ich weiss das es eine unnütze Spielerei ist.
Richtig. So ziemlich alles, was Scrollen mit JavaScript nachbaut, ist nur sehr eingeschränkt bedienbar: nicht in dem Nutzer angenehmer Geschwindigkeit, nicht per Mausrad, nicht per Tastatur, nicht per Touchgesten, …
Man müsste schon sehr viel Aufwand betreiben, um das alles, was der Browser ohnehin schon kann, nochmal nachzubauen. Und wofür?
Die relevante Stelle ist dann wohl hier:
$('a[href*=#]').bind("click", function(event)
^^^^^^^
Richtig. 'a[href*=#]' selektiert alle a-Elemente, in deren @href-Attributwert ein '#' vorkommt. (Vermutlich nicht das Gewünschte, sondern eigentlich sollen alle a-Elemente selektiert werden, deren @href-Attributwert mit '#' beginnt.)
Kann man das entsprechend ändern oder ist das nicht möglich?
Ja. Du musst eben alle a-Elemente selektieren, deren @href-Attributwert gleich '#top' oder '#bottom' ist.
Qapla'
Om nah hoo pez nyeetz, Gunnar Bittersmann!
Ja. Du musst eben alle a-Elemente selektieren, deren @href-Attributwert gleich '#top' oder '#bottom' ist.
Ein einfaches Komma sollte es auch tun:
$("a[href = #top], a[href = #bottom]")
Matthias