2012-03-26 8 views
1

der Einfachheit halber Aktualisiert: http://jsfiddle.net/vJVcf/5/jQuery-Position() links, Rückkehr offsetleft enorm unterschiedliche Werte in Chrome und Firefox

///

http://jsfiddle.net/kE6TR/

(die Animation passiert, wenn auf dem Absatz schweben)

Ich habe keine Ahnung, was das verursacht, aber ich habe den Unterschied auf die Position() eingegrenzt. Wert - Webkit und Firefox interpretieren das aus verschiedenen Gründen völlig anders.

var $plugin = jQuery.sub(); 
$plugin.fn.animate = function(props, speed, cb) { 



    if (typeof(speed) == "function") cb = speed, speed = 500; 
    if (typeof(cb) != "function") cb = function() {}; 
    return $.each(this, function(i, el) { 
     el = $(el); 

     if (props.float && props.float != el.css("float")) { 
      var elem = el.clone().insertBefore(el).addClass('killme'), 
      temp = el.position().left; 
      el.css('position', 'absolute'); 
      props.marginLeft = 0; 
      props.left = 0; 

      el.css({ 
       marginLeft: temp 
      }); 
     } 
     $(this).animate(props, speed, function() { 
      $(this).css(props); 
      cb(); 
      el.css({ 
       marginLeft: -100, 
       position: "relative", 
       display: "block", 
       clear: "both" 
      }); 
     }); 
    }); 
}; 
+0

Vielleicht könnten Sie ein dramatisch weniger komplex Beispiel erstellen? Idealerweise ein statischer? Auch Ihr Titel erwähnt "offsetLeft", aber ich sehe nicht, dass Sie es irgendwo verwenden. –

+0

Vielleicht bedeutet er, marginLeft? –

+0

Kannst du erklären "keine Ahnung, was das verursacht"? Was bekommst du und was erwartest du? –

Antwort

0

Ich glaube, ich bekommen, was Sie gehen für, aber Ihre jQuery sah unnötig komplex ... was es mit diesem zu ersetzen? (Ex http://jsfiddle.net/tcloninger/uGNzA/.)

$(document).ready(function(){ 

    $('.eula_animate').each(function(){ 
     $(this) 
      .clone() 
      .prependTo(this) 
      .addClass('move_me') 
      .css({'left': $(this).offset().left }); 
    }); 

    $('p').hover(function(){ 
     $('.move_me').show().animate({'left':20},2000); 
    }); 

}); 

... oh ja, und fügen Sie diese CSS: .move_me{ display:none; position:absolute; color:red; }

+0

Ordentliches Konzept. Du könntest ein paar coole Sachen mit der Idee machen. –

+0

Das funktioniert leider immer noch nicht für mich, da ich möchte, dass die Wörter aus dem Absatz herausgleiten und links vom Text ausgerichtet werden. das startet sie rechts in Chrom. Ich habe das Jfiddle aktualisiert, um einfacher und lesbarer zu sein. Danke :) – Niko

+0

Tut genau das für mich. Unter Windows 7 alle modernen Browser. Hmm. –

Verwandte Themen