Frage

In this code :

$("div#info_holder").css("marginLeft", "100%");
alert(parseFloat($("#info_holder").css("marginLeft")));
alert(parseFloat(document.getElementById("info_holder").style.marginLeft));

the first alert returns 1037.78, the second alert returns 100

why is that?!

War es hilfreich?

Lösung

It's because the jQuery version is returning the margin as pixels and the native JS is returning the value as a percentage. Take a look at this fiddle, which shoes the values before parseFloat is run.

$("div#info_holder").css("marginLeft", "100%");

console.log($("#info_holder").css("marginLeft"));
console.log(document.getElementById("info_holder").style.marginLeft);

http://jsfiddle.net/ryanbrill/wtABu/

Andere Tipps

$("#info_holder").css("marginLeft") returns pixel while document.getElementById("info_holder").style.marginLeft read it in percentage.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top