Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dynamiczne tworzenie warstwy
ins@ne
post 14.09.2004, 14:55:54
Post #1





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 10.07.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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


--------------------
"Jedyną pewną metodą unikania porażek jest nie mieć żadnych, nowych pomysłów."
Albert Einstein
Go to the top of the page
+Quote Post
zx81
post 14.09.2004, 18:37:36
Post #2





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 2.06.2004

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Paul
post 14.09.2004, 23:23:06
Post #3





Grupa: Zarejestrowani
Postów: 636
Pomógł: 0
Dołączył: 22.10.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Mozesz edytowac wczesniej przygotowanego diva przez innerHTML, chodzby tak jak kolega wyzej napisal...
Go to the top of the page
+Quote Post
ins@ne
post 15.09.2004, 09:11:07
Post #4





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 10.07.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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


--------------------
"Jedyną pewną metodą unikania porażek jest nie mieć żadnych, nowych pomysłów."
Albert Einstein
Go to the top of the page
+Quote Post
Cudi
post 15.09.2004, 16:50:37
Post #5


Administrator planeta/IRC


Grupa: Przyjaciele php.pl
Postów: 385
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Zabrze

Ostrzeżenie: (0%)
-----


  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...


--------------------
"Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning."
Cudi's devBlog
Go to the top of the page
+Quote Post
Paul
post 15.09.2004, 18:40:47
Post #6





Grupa: Zarejestrowani
Postów: 636
Pomógł: 0
Dołączył: 22.10.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
ins@ne
post 16.09.2004, 10:54:58
Post #7





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 10.07.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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).

Ten post edytował ins@ne 16.09.2004, 11:24:16


--------------------
"Jedyną pewną metodą unikania porażek jest nie mieć żadnych, nowych pomysłów."
Albert Einstein
Go to the top of the page
+Quote Post
sf
post 16.09.2004, 11:07:25
Post #8





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


http://www.w3.org/TR/CSS21/visuren.html


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
Dominik
post 16.09.2004, 11:22:18
Post #9





Grupa: Zarejestrowani
Postów: 339
Pomógł: 0
Dołączył: 17.06.2003
Skąd: Białystok

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
ins@ne
post 16.09.2004, 12:37:10
Post #10





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 10.07.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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!

Ten post edytował ins@ne 16.09.2004, 15:10:22


--------------------
"Jedyną pewną metodą unikania porażek jest nie mieć żadnych, nowych pomysłów."
Albert Einstein
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 20:40