Rainer: mit jQuery scrollen

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

  1. $(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;  
    });
    
    1. $('a[href*=#_]').bind("click", function(event) {

      Sorry              ^ ist nicht im Originalscript. War ein Versuch von mir..

  2. @@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'

    --
    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
    1. 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

      --
      Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Bussard und Bussardkollektor.