2012-03-26 12 views
1

を簡単にするために更新さに非常に異なる値を返す:段落にホバリングするとき http://jsfiddle.net/vJVcf/5/jQueryの位置()、offsetLeftは、クロムとFirefox

///

http://jsfiddle.net/kE6TR/

(アニメーションが起こります)

私はこれを引き起こす原因は考えていませんが、その差をposition()に絞りました。値 - いくつかの理由から、WebkitとFireFoxはそれを完全に異なって解釈します。

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

おそらく、あなたは劇的に少ない複雑な例を作成することができますか?理想的には静的なもの?また、あなたのタイトルには 'offsetLeft'と書かれていますが、どこにでも使用しているとは思いません。 –

+0

おそらく、彼は余裕を残しているのでしょうか? –

+0

「これを引き起こす原因がわからない」と説明できますか?あなたは何を手に入れていますか、何を期待していますか? –

答えて

0

私はあなたが何をしているのだろうと思っていますが、あなたのjQueryは不必要に複雑に見えます。 (例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); 
    }); 

}); 

...そうそう、このCSSを追加します。.move_me{ display:none; position:absolute; color:red; }

+0

ニートコンセプト。あなたはアイデアでいくつかのクールなものをすることができます。 –

+0

これは、私が段落から外にスライドしてテキストの左に揃えたいので、残念ながら私にとってはうまくいきません。これはクロムの右にそれらを開始します。私はjfiddleをより簡単で読みやすいように更新しました。ありがとう:) – Niko

+0

私はそれを正確にしますか? Windows 7を使用して、すべての最新のブラウザ。うーん。 –

関連する問題