On 8/19/11 3:09 PM, Ralf-Rene Schröder wrote:
Hallo...
ich habe gerade ein Problem beim Anspringen von Ankern (Contentelementen)

scheint ein reines JS-Problem zu sein. Ich würde Dir raten, ein JS-Teil zu nehmen, was sanft hinscrollt, dann kannst Du es dort auch manipulieren. Das reine <a href=#marker tut es nicht.


So etwa:

$(document).ready(function()  {

   $('a[href*=#]').click(function()  {

      // skip SmoothScroll on links inside sliders or scroll boxes also using 
anchors or if there is a javascript call
      if($(this).parent().attr('class')=='scrollable_navigation'  ||  
$(this).attr('href').indexOf('javascript')>-1)  return;

      // duration in ms
      var  duration=1000;

      // easing values: swing | linear
      var  easing='swing';

      // get / set parameters
      var  newHash=this.hash;
      var  oldLocation=window.location.href.replace(window.location.hash,  '');
      var  newLocation=this;

      // make sure it's the same location
      if(oldLocation+newHash==newLocation)
      {
         // get target
         var  target=$(this.hash+', 
a[name='+this.hash.slice(1)+']').offset().top;

         // adjust target for anchors near the bottom of the page
if(target> $(document).height()-$(window).height()) target=$(document).height()-$(window).height();
         // set selector
         if($.browser.safari)  var  animationSelector='body:not(:animated)';
         else  var  animationSelector='html:not(:animated)';

         // animate to target and set the hash to the window.location after the 
animation
         $(animationSelector).animate({  scrollTop:  target},  duration,  
easing,  function()  {

            // add new hash to the browser location
            window.location.href=newLocation;
         });

         // cancel default click action
         return  false;
      }
   });

});



Brauchst dann och dies EASING-lib.

Rainer

wenn ich einen Anker direkt anspringe (oder auch über eine
Contentsitemap), dann springt die Seite dorthin dass das entsprechende
Contenelement am oberen rand des Viewports sitzt (soweit eigentlich OK)...
nun habe ich aber einen fix positionierten header am oberen Rand
und das CE ist damit zum Teil dahinter verschwunden
gibt es sowas wie ein Offset was für das Anspringen eines Ankers
eingestellt werden kann, damit die Anzeige immer z.B.120px unter dem
oberen Rand startet?
oder gibt es für so einen Fall ein JS was helfen könnte, denn mit CSS
scheit mir keine Lösung zu greifen.

jemand eine Idee ???

eine Beispielseite liegt hier:
http://if_ready2go.if-20.com/index.php?id=114#c426




--
Dipl.-Ing. Rainer Schleevoigt
Webmasterei Hamburg
iPhone/Android Developer
Certified TYPO3 Integrator
22303 Hamburg
Novalisweg 10

_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an