Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [css][js]Wyciąganie wartości stylu
Forum PHP.pl > Forum > Po stronie przeglądarki
230005
Pytanie z gatunku prostych, albo banalnych, ale mi się mózg zawiesił i po prostu nie wiem tongue.gif . Mam sobie styl, w którym margin-left jest zadeklarowane, dajmy na to 20%. Chcę tą wartość wyciągnąć w funkcji odpalanej w interwale. Robię to tak:

var zmienna = jakisDivex.style.left.substring(0, 1);

I powinno mi wyciąć dwa pierwsze znaki tej wartości, tak? No więc kiedy daję alert(zmienna); wyświetla mi się pusty alert. Co robię nie tak biggrin.gif ? Próbowałem jeszcze na początku z style.marginLeft, ale takiej właściwości chyba nie ma?questionmark.gif Znacie w ogóle jakąś stronę gdzie by był spis styl css - odpowiednik w js?

Wiem, że mózg pisze się mózg winksmiley.jpg trochę poczucia humoru batman winksmiley.jpg
kamil4u
Coś takiego:
Kod
<span style="margin-left: 20%;" id="test">TEST</span>
<script>
alert(document.getElementById('test').style.marginLeft.substring(0,2));
</script>
?
230005
To by zadziałało, gdybym styl ustawił za pomocą JavaScript. Poszukałem, poszperałem i okazuje się że styli zapisywanych w arkuszu nie da się odczytać, ani zmienić w taki sposób, jaki podpowiada nam na początku zdrowy rozsądek (czyli taki jak podałeś i jakiego ja używałem). Dokopałem się do tych dwóch tematów, które zdają się rozwiązywać mój problem:

http://ubuntuforums.org/archive/index.php/t-499951.html

http://www.ruzee.com/blog/2006/07/retrievi...via-javascript/
kamil4u
Cytat
okazuje się że styli zapisywanych w arkuszu nie da się odczytać

Dobry żart smile.gif - http://forum.webhelp.pl/viewtopic.php?p=901921#901921 - inny temat, ale sposób ten sam smile.gif

PS. Nie otwierałem podanych przez Ciebie linków
230005
Koleś nie napisał czy z początku ustawia background-image w arkuszu, czy za pomocą js. W pierwszym z linków jest napisane:

"The only snag is that, you have to first assign them in javascript. The default attributes loaded during page refresh from the css file are not readable in javascript. Therefore, if you originally define the "underline" attribute in css, this statement would give you null:"

I zrobiłem sobie tak: ustawiłem styl body background-color na black, a w js dałem tak: alert(document.body.style.backgroundColor);

Alert nie pokazał nic, co po raz kolejny potwierdza to, co napisałem wyżej :] .
kamil4u
Masz - co się nie da? - wszystko się da:
- wyciągnięcie stylu dodanego przez atrybut style:
Kod
<span id="test" style="color: red;">test</span>
<script>alert(document.getElementById('test').style.color);</script> //wynik 'red'

- wyciągnięcie stylu dodanego przez znacznik style zawarty w <head>
Kod
<style>
  #test1 {color: red;}
  #test { color: green; }
</style>
<span id="test">test</span>
<script>alert(document.styleSheets[0].cssRules[1].style.color
); //ważne: chcesz znaleźć konkretny element to pętla po cssRules, cssText, selectorText i wyr. regularne </script> //wynik 'green'


- style CSS trzymane w pliku - jak wyżej

Nadal twierdzisz, że się nie da wyciągnąć stylu z pliku?
230005
Cytat
styli zapisywanych w arkuszu nie da się odczytać, ani zmienić w taki sposób, jaki podpowiada nam na początku zdrowy rozsądek (czyli taki jak podałeś i jakiego ja używałem)


Tak napisałem, żeby była jasność :] . A twoim drugim sposobem się da, co z resztą też jest napisane w jednym z podanych przeze mnie wyżej linków. Nie da się tak: element.style.backgroundColor i o to mi od początku chodziło winksmiley.jpg
kamil4u
Cytat
Nie da się tak: element.style.backgroundColor i o to mi od początku chodziło winksmiley.jpg

I tak trzeba było napisać od razu smile.gif - uniknęlibyśmy nieporozumień . Twój problem z 1 postu już rozwiązany?
230005
Ano rozwiązany.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.