Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dynamiczne tworzenie warstwy
Forum PHP.pl > Forum > Po stronie przeglądarki
ins@ne
Chodzi mi o to czy sie da i jesli sie da to jak utworzyc dynamicznie warstwe. O co konkretnie mi chodzi. Musze napisac funkcje, ktora przy wywolaniu bedzie tworzyc nowa warstwe ( <div> ), ktora bede mogl sobie formatowac, edytowac itp.
Ktos wie? smile.gif
zx81
Może prościej będzie w ten sposób :
1. umieścic DIV'a w kodzie strony i go "schować" tzn. visibility='hidden'
2. funkcja ustawia parametry takiego DIV'a i go 'pokazuje'

Wygenerować się da ale to jest raczej skomplikowane - dołanczanie nowego obiektu itd.
Pozdrawiam
Paul
Mozesz edytowac wczesniej przygotowanego diva przez innerHTML, chodzby tak jak kolega wyzej napisal...
ins@ne
1. innerHTML dziala tylko pod IE sad.gif
2. musze miec mozliwosc tworzenia dynamicznie warstwy bo:
- warstwa ta ma byc ustawiana relatywnie od miejsca, w ktorym znajduje sie kursor myszy, a jesli wklepie gdzies kod warstwy to ona bedzie sie wyswietlac relatywnie od miejsca gdzie jest ten kod
- warstwa bedzie miala dynamicznie zmieniana zawartosc przez argumenty z javy wiec sad.gif musi byc dynamicznie tworzona smile.gif
Cudi
  1. function createLayer() {
  2. var layer = document.createElement('DIV');
  3. layer.id = "newLayer";
  4. layer.innerHTML = "dupa";
  5.  
  6. document.body.appendChild(layer);
  7. }
  8.  
  9. <input type="button" value="Stworz warstwe" onclick="createLayer()">
  10. </body>

Sprawdziłem pod FF 0.9, IE 6 i Operze 7.54
Cytat
1. innerHTML dziala tylko pod IE sad.gif

Bzdura...
Paul
Cytat(ins@ne @ 2004-09-15 10:11:07)
musi byc dynamicznie tworzona

Nie musi - moze byc dynamicznie edytowana.

Cytat("ins@ne")
musze miec mozliwosc tworzenia dynamicznie warstwy bo:
- warstwa ta ma byc ustawiana relatywnie od miejsca, w ktorym znajduje sie kursor myszy

Mozna takze przesunac juz istniejaca warstwe.
ins@ne
Bardzo dziekuje - wszystko dziala i naprowadzilo mnie to w ogole na przeszukiwanie specyfikacji w3c... Ale jest jedna rzecz, ktora nie chce mi dzialac w dalszym ciagu (a nie moge znalezc przykladu w sieci, ktory by to opisywal). Nie moge ustawic pozycji tej warstwy. Rozmiar, kolory itp. ustawiam bez problemu, ale z pozycja nie moge sad.gif. Moze wiecie jeszcze jak to ustawic?

OK... Juz nieaktualne. Przed ustawieniem wartosci dla .top trzeba zmienic position na jakikolwiek inny niz statc... (wyczytane ze specyfikacji css).
sf
http://www.w3.org/TR/CSS21/visuren.html
Dominik
Cytat(Cudi @ 2004-09-15 17:50:37)
Cytat
1. innerHTML dziala tylko pod IE sad.gif

Bzdura...

Co nie znaczy ze nie lepiej skorzystac z DOM.
ins@ne
To jeszcze mam jedno pytanie smile.gif
Calosc, ktora tworze to funkcja, ktora bedzie wyswietlac "dymki" (takie jak alt przy img). Teraz chcialbym zeby rozmiar tego dymku byl dopasowany to tekstu wewnatrz niego. Funkcja wyglada tak:
  1. function showTip(strArg) {
  2. newLayer = document.createElement("DIV");
  3. var layerText = document.createTextNode(strArg);
  4. var textLength = strArg.length;
  5.  
  6. var fontSizeInPixels = 11;
  7.  
  8. document.body.appendChild(newLayer);
  9. newLayer.style.backgroundColor = "#ffc";
  10. newLayer.style.color = "#000";
  11. newLayer.style.width = textLength*fontSizeInPixels+'px';
  12. newLayer.style.height = 14+'px';
  13. newLayer.style.position = "relative";
  14. newLayer.style.top = -20+'px';
  15. newLayer.style.left = 20+'px';
  16. newLayer.style.borderWidth = 1+'px';
  17. newLayer.style.borderStyle = "solid";
  18. newLayer.style.borderColor = "#000";
  19. newLayer.style.fontFamily = "Arial, Helvetica, sans-serif";
  20. newLayer.style.fontSize = fontSizeInPixels+'px';
  21. }

No i mam problem z tym wymiarowaniem. Wedlug tego co tam znalazlem w w3c to 'em' to jest odleglosc rowna rozmiarowi czcionki, ale to nie jest to czego szukam bo jesli wpisze same 'WWWW' to pole jest w sam raz, a jak wpisze same 'iiii' no to pole jest o wiele za duze. Probowalem (tak jak w tym kodzie) jakos wykorzystac atrybut length i pomnozyc go przez rozmiar fonta, ale to tez nie daje pozadanych rezultatow. Czy ktos z Was wie moze jak to rozwiazac? Kiedys cos takiego robil?

EDIT:
A i to udalo sie rozwiazac. Troche tylko trzeba bylo zmienic tok myslenia. Wystarczy zamienic div (ktory "ciagnie sie" do konca linii) na span i problem z glowy. Dziekuje za pomoc!
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.