Sto cercando di capire come, dopo aver modificato le proprietà di stile con javascript, posso ripristinare il valore nel foglio di stile (comprese le unità).Come restituire una proprietà di stile set javascript ai valori predefiniti CSS
Nell'esempio seguente, mi piacerebbe che l'output legga 100px
(il valore nel CSS), anziché 10px
, come indicato da getComputedStyle
.
Conserverei anche il dummy div allo top:25px
, pertanto la rimozione della proprietà style
non funzionerà.
Il meglio che ho è la clonazione del nodo e la lettura dell'altezza e la memorizzazione in una proprietà (http://jsfiddle.net/daneastwell/zHMvh/4/), ma questo non è davvero ottenere il valore css predefinito del browser (soprattutto se questo è impostato in em
s).
http://jsfiddle.net/daneastwell/zHMvh/1/
<style>
#elem-container{
position: absolute;
left: 100px;
top: 200px;
height: 100px;
}
</style>
<div id="elem-container">dummy</div>
<div id="output"></div>
<script>
function getTheStyle(){
var elem = document.getElementById("elem-container");
elem.style.left = "10px";
elem.style.top = "25px";
var theCSSprop = window.getComputedStyle(elem,null).getPropertyValue("left");
document.getElementById("output").innerHTML = theCSSprop;
}
getTheStyle();
</script>
Perché non è possibile utilizzare le classi CSS? Quindi dovrai semplicemente aggiungerli/rimuoverli invece di modificare le singole proprietà di stile. –
Inoltre, il valore corrente per left _is_ 10px perché getComputerStyle restituisce lo stile ... calcolato di quell'elemento (incluso l'attributo style) e non solo le regole specificate nel CSS. Nota: tenere presente che getComputedStyle non è supportato nelle versioni precedenti di IE. –
Sto eseguendo un'attività su ridimensionamento, quindi il valore 'sinistra' è calcolato, quindi una classe non sarebbe d'aiuto, mi spiace di non essere stata più specifica. –