Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pobieranie styli w js
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Matiash
Witam,

Otóż mam taką oto klasę w stylach
  1. .move {
  2. display:none;
  3. width: 150px;
  4. height: 30px;
  5. background: #000;
  6. opacity: .6;
  7. position: absolute;
  8. margin-left: 17px;
  9. margin-top: 11px;
  10. }


Następnie w witrynie mam taki układ:

  1. <div id="move1" class="move">tresc</div>
  2. <img src="link" onclick="show('move1')" />



funkcja js:
  1. function show(id) {
  2. var obiekt = document.getElementById(id);
  3. if (obiekt.style.display == 'none') {
  4. obiekt.style.display = 'block';
  5. }
  6.  
  7. }


Jak zahaszuje linijke z if'em i zostawie w funkcji tylko: "obiekt.style.display = 'block';" to śmiga. Dlaczego tak się dzieje ?
Moje pytanie brzmi czy ten div o id="move1" nie powinien przejąć styli z klasy "move" ? Jak robie getAttribute("style") to mi zwraca null. Dopiero jak nada przez js jakiś styl to mi tylko jego zwraca...dlaczego javascript nie wczytuje styli zawartaych w pliku css ?
skowron-line
Cytat
dlaczego javascript nie wczytuje styli zawartaych w pliku css ?


Bo robi się to inaczej niż ty zaprezentowałeś.
http://www.javascriptkit.com/domref/stylesheet.shtml
Matiash
ok, trochę to zagmatwane jest. Czyli jeśli mam style zdefiniowane dla danego "id" w pliku zewnętrznym, lub w pliku html poprzez <style></style> lub poprzez <input type="button" style="jakis styl" /> to muszę skorzystać z tej metody co podałeś ?
skowron-line
Tak jeżeli style nie są wpisane w element, to tak. Jeżeli chcesz się tym bawić skorzystaj z jakiegoś FW będzie Ci dużo łatwiej ogarnąć tą (i wiele innych) sprawę.
kamil4u
Przesadzacie... http://www.quirksmode.org/dom/getstyles.html i:
Kod
function getStyle(el,styleProp)
{
    var x = document.getElementById(el);
    if (x.currentStyle)
        var y = x.currentStyle[styleProp];
    else if (window.getComputedStyle)
        var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
    return y;
}

Ew. dodaj do tego(pseudokod):
Kod
jeżeli( istnieje(el.style[wartosc]) )to zwróć to el.style[awrtosc], a jak nie to to co powyżej podałem
Matiash
Ok, dzięki,
mam jeszcze pytanie trochę z innej beczki. Jeśli mam <div id="nazwa1"> w którym są pewne elementy witryny takie jak tekst, obrazki i inne divy, jeśli zrobię w pętli i pobiorę childNodes z tego diva to mi wychodzi coś takiego :

[object Text]
[object Comment]
[object Text]
[object HTMLImageElement]
[object Text]
[object HTMLDivElement]
[object Text]
[object Comment]
[object Text]
http://localhost/users/Matiash/delphoto/?u...288ef0187dd2696
[object Text]

Moje pytanie, czy da się odnieść jakoś do tego obiektu [object Text] ? Być może moje rozumowanie jest błędne ale np. chciałbym przenieść pierwszy [object Text] do innego diva (oczywiście ten [object Text] nie ma id, tylko jest suchym tekstem), da się coś takiego zrobić ?
kamil4u
Poczytaj o DOM: http://kurs.browsehappy.pl/Definicja/DOM i http://kurs.browsehappy.pl/JavaScript/DOM i ew. o innerHTML
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.