Farben dynamisch verändern. (nicht in HEX-Schreibweise)
Robert
- dhtml
Hallo,
Hab' mal wieder ein Problem, bei dem ich nicht
weiterkomme:
Ich möchte Farben dynamisch verändern, was mit
folgender Anweisung auch wunderbar klappt:
document.all.irgendwas.style.color = "#RRGGBB"
Nun möchte ich aber die einzelnen Farben
(Rot grün und Blau) dabei durch Funktionen
berechnen, so daß ich statt der "'RRGGBB"-
Schreibweise drei Variablen (mit Werten
zwischen 0 und 255) einsetzten möchte.
Da könnte man zwar ein Java-Script schreiben,
das die drei Variablen in die Hex-Schreibweise
umrechnet, aber das wäre ziemlich aufwendig.
Nun habe ich von der Möglichkeit gelesen,
daß für Style-Sheets auch folgende Schreibweise
zulässig ist: ...color:rgb(rrr,ggg,bbb)
wobei direkt die drei Zahlen angegeben werden
können. Aber ich möchte ja mit document.all
die Werte dynamisch verändern, und da kann
ich ja nur eine einzige Farb-Variable übermitteln.
Wie muß ich da vorgehen, wenn ich die
zu übermittelnde Farbe nicht in hexadezimal-
Schreibweise habe, sondern nur drei normale
numerische Variablen?
Für Eure Hilfe im Voraus besten Dank.
Bye, Robert
hi
document.all.irgendwas.style.color = "#RRGGBB"
das is depricated - besser:
document.getElementById("irgendwas").style.color= "#RRGGBB";
..dann geht's auch in Mozilla/Netscape 6/7
Nun habe ich von der Möglichkeit gelesen,
daß für Style-Sheets auch folgende Schreibweise
zulässig ist: ...color:rgb(rrr,ggg,bbb)
wobei direkt die drei Zahlen angegeben werden
können. Aber ich möchte ja mit document.all
die Werte dynamisch verändern, und da kann
ich ja nur eine einzige Farb-Variable übermitteln.
und? Es müsste möglich sein, den String mit dem aktuellen Wert "auseinanderzubröseln" und dann den neuen Wert relativ zum alten zu setzen - oder hab' ich dich jetzt miss(t) verstanden?
Grüße aus Bleckede
Kai
Moin!
Du hast nachts auch nichts besseres zu tun, oder? ;)
- Sven Rautenberg
hi
Du hast nachts auch nichts besseres zu tun, oder? ;)
erfasst ;)
ich hab' eben einige Stunden lang zunächst mehr oder weniger Erfolgreich BeOS auf meinem PC installiert um jetzt festzustellen, dass die aktuelle Version eine 640MB (!) swap-File auf meine Partition knallt, die nur 1 GB groß ist. Beim Löschen hab' ich dann wohl auch schon leichte Schäden angerichtet, aber zum glück läuft's noch.
Danach habe ich mir die dortige Mozilla-Version angetan... Das dieses Programm überhaupt irgendjemand freiwillig benutzt wundert mich offengesagt, 5 Bugs, von denen einer als blocker (= macht Mozilla eigentlich unbenutzbar) und zweig weitere als extrem nervig einzustufen sind :(
1. Mozilla kann nach einiger Zeit keine Verbindung mehr herstellen, selbst 'ne bestehende IRC-Verbindung bricht zusammen
2. AltGr funktioniert in Mozilla nicht
3. vertikale Scrollbars werten teilweise bei der Platzaufteilung nicht mitberechnet und überlappen somit nachfolgende Inhalte
nochmal für die nur Querleser:
Das betrifft nur die BeOS-Version! Unter Windows und Linux benimmt sich Mozilla anständig.
Grüße aus Bleckede
Kai
Hallo,
Erst mal nochmal Danke für eure Hilfe.
Das werd' ich nacher gleich mal ausprobieren.
ich hab' eben einige Stunden lang zunächst
mehr oder weniger Erfolgreich BeOS auf meinem
PC installiert um jetzt festzustellen, dass die
aktuelle Version eine 640MB (!) swap-File
auf meine Partition knallt, die nur 1 GB groß ist.
Frage:
Was ist ein Swap-File?
Und was ist da drin?
Ist das die Datei "Win386.swp"?
Über diese gigantische Datei
(die irgendwie anscheinend auch
öfters mal die Größe ändert)
hab ich mich nämlich auch schon
oft aufgeregt.
Vor einigen Monaten hab' ich die
Datei gelöscht, was ein großer
Fehler war. Danach hat mein PC
fast nichts mehr gefunden, was
vorher alles installiert war.
Bye, Robert
hi
Was ist ein Swap-File?
Und was ist da drin?
alles, was nicht in den RAM passt (eigentlich)
Ist das die Datei "Win386.swp"?
jo, unter Windows 9x heißt die sol. pagefile.sys unter NT und Ablegern. Unter Linux ist es eine eigene Partition, unter BeOS die Datei /var/swap.
Über diese gigantische Datei
(die irgendwie anscheinend auch
öfters mal die Größe ändert)
hab ich mich nämlich auch schon
oft aufgeregt.
naja.. allerdings schafft Windows afaik keine 640MB Minimalgröße bei 512 MB RAM...(unter Linux habe ich bei gleichem RAM _gar keine_ !)
also, wenn einer auf einem Hack stößt, wie man BeOS da humane Größen beibringt, immer raus damit - sonst versuch ich das Ding auf meine ext2-Partition im Datennirvana zu legen, auf der - bei 4,5gig gesamt - soetwas kein Problem ist... wenn aber von 1gig 2/3 gefressen werden, stört das dann doch *etwas*
Vor einigen Monaten hab' ich die
Datei gelöscht, was ein großer
Fehler war. Danach hat mein PC
fast nichts mehr gefunden, was
vorher alles installiert war.
nanu? Das sollte eigentlich nicht der Fall sein - die Datei ist dem System schlichtweg egal und (sollte) so sie verlohrengeht einfach neu erstellt werden.
Grüße aus Bleckede
Kai
Hallo,
»» (die irgendwie anscheinend auch
»» öfters mal die Größe ändert)
»» hab ich mich nämlich auch schon
»» oft aufgeregt.naja.. allerdings schafft Windows afaik keine 640MB Minimalgröße bei 512 MB RAM...(unter Linux habe ich bei gleichem RAM _gar keine_ !)
also, wenn einer auf einem Hack stößt, wie man BeOS da humane Größen beibringt, immer raus damit - sonst versuch ich das Ding auf meine ext2-Partition im Datennirvana zu legen, auf der - bei 4,5gig gesamt - soetwas kein Problem ist... wenn aber von 1gig 2/3 gefressen werden, stört das dann doch *etwas*
bei Windows ist meines Wissens die Minimalgöße der Swap-Datei standardmäßig 0 und die Maximalgröße der zur Verfügung stehende Plattenplatz. Das bedeutet aber, daß diese Datei mit der Zeit stark fragmentiert, was sich dann in einer spürbaren Verlangsamung des Systems bemerkbar macht.
Tipp: Der Swap-Datei unter System -> Leistungsmerkmale -> Virtueller Arbeitsspeicher eine feste Größe zuteilen
("manuelle Einstellung des virtellen Arbeitsspeichers" -> Minimal-und Maximalgröße auf die gleiche Zahl setzen). Richtgröße ist im Allgemeinen das Doppelte des vorhandenen Arbeitsspeichers (ist zwar bei 512 MB RAM schon bitter, aber bei den heutigen Plattengrößen auch noch erträglich).
An Kai: Linux funktioniert auch ohne Swap-Partition? Von anderen Unix-Varianten, beipielsweise AIX, weiß ich, daß das auf keinen Fall möglich ist. Wirkt sich bei großem Arbeitsspeicher eine Swap-Parttion vielleicht negativ aus, z.B. weil Linux dann den gesamten virtuellen Speicher adressiert und deswegen swappt, obwohl alles sich im RAM abspielen könnte?
Schönen Gruß aus Bilk
Rainer
P.S.: 640 MB RAM sollten für jedermann genug sein!
--
geschrieben mit
Selfbrowser UNIX
hi
hi
An Kai: Linux funktioniert auch ohne Swap-Partition? Von anderen Unix-Varianten, beipielsweise AIX, weiß ich, daß das auf keinen Fall möglich ist. Wirkt sich bei großem Arbeitsspeicher eine Swap-Parttion vielleicht negativ aus, z.B. weil Linux dann den gesamten virtuellen Speicher adressiert und deswegen swappt, obwohl alles sich im RAM abspielen könnte?
also meine swap-Partition ist seit gestern Geschichte (Pech für sie, dass sie am Anfang der Platte lag und "bootman" [der Bootmanager von BeOS] nicht auf das Ende meiner 60gig Platte kommt *g*). Wie schon gesagt, hab' ich hier 512MB echten RAM, da sollte eh nichts sappen (selbst bei 256 hab' ich das nicht ohne mehrere Spiele vom Kaliber eines Diablo2 im Hintergrund geschafft)
P.S.: 640 MB RAM sollten für jedermann genug sein!
*g*
Moin!
ich hab' eben einige Stunden lang zunächst mehr oder weniger Erfolgreich BeOS auf meinem PC installiert um jetzt festzustellen, dass die aktuelle Version eine 640MB (!) swap-File auf meine Partition knallt, die nur 1 GB groß ist. Beim Löschen hab' ich dann wohl auch schon leichte Schäden angerichtet, aber zum glück läuft's noch.
Ich kann mich zwar nicht mehr ganz genau an meine letzte BeOS-Installation (war noch R4.5) erinnern, aber meines Wissens konnte man die Groesse der Swap-Datei bei der Installation in irgendeinem Dialog angeben.
Ciao!
Sebastian
hi
Ich kann mich zwar nicht mehr ganz genau an meine letzte BeOS-Installation (war noch R4.5) erinnern, aber meines Wissens konnte man die Groesse der Swap-Datei bei der Installation in irgendeinem Dialog angeben.
es gibt einen Schieber - der bei 512MB echtem RAM ein Minimum von 640MB swap hat.. nach oben könnte man das ganze praktisch unbegrenzt ausdehnen, bis irgendwann die Platte voll ist!
Grüße aus Bleckede
Kai
hi
ich hab' eben einige Stunden lang zunächst mehr oder weniger Erfolgreich BeOS auf meinem PC installiert um jetzt festzustellen, dass die aktuelle Version eine 640MB (!) swap-File auf meine Partition knallt, die nur 1 GB groß ist. Beim Löschen hab' ich dann wohl auch schon leichte Schäden angerichtet, aber zum glück läuft's noch.
...und es geht doch ;))
die Größe der swap-Datei ist in /boot/home/config/settings/kernel/drivers/virtual_memory vermerkt - diesen Wert kann man dann beliebig manuell verändern, auch weit unter das systemeigene Mindestmaß!
Grüße aus Bleckede
Kai
Moin!
Ich möchte Farben dynamisch verändern, was mit
folgender Anweisung auch wunderbar klappt:
document.all.irgendwas.style.color = "#RRGGBB"
Vergiß doch bitte document.all. Niemand braucht es mehr, die Nutzer von IE 4 und darunter sind auf einen Browseranteil von unter 1,2% geschrumpft, wenn man der W3B-Analyse glauben soll.
Aktuell ist document.getElementById.
Nun habe ich von der Möglichkeit gelesen,
daß für Style-Sheets auch folgende Schreibweise
zulässig ist: ...color:rgb(rrr,ggg,bbb)
wobei direkt die drei Zahlen angegeben werden
können. Aber ich möchte ja mit document.all
die Werte dynamisch verändern, und da kann
ich ja nur eine einzige Farb-Variable übermitteln.
document.getElementById("deineID").style.color='rgb(255,128,23)';
Das dürfte dein Problem lösen. Du übergibst als String, was du auch in die CSS-Definition reinschreiben würdest. Und den String kannst du beliebig zusammensetzen. 'rgb('+rot+','+gruen+','+blau')' sollte auch gehen.
Für Eure Hilfe im Voraus besten Dank.
Es ist nachts um 2:29, und eine erste Antwort ist bereits nach 7 Minuten da. Was will man mehr? Möglicherweise steht die Antwortqualität aber in direktem Zusammenhang mit der fortgeschrittenen Zeit.
- Sven Rautenberg
Hallo,
document.getElementById("deineID").style.color='rgb(255,128,23)';
Das dürfte dein Problem lösen. Du übergibst als String, was du auch in die CSS-Definition reinschreiben würdest. Und den String kannst du beliebig zusammensetzen. 'rgb('+rot+','+gruen+','+blau')' sollte auch gehen.
Ja, Danke, funktioniert prima. :-)
Ich hab' jetzt einfach einen String zusammengesetzt
aus den kurzen String-Teilen und den Zahlenvariablen.
Kann man das eigentlich so machen?
Ich meine, es funktioniert zwar prima,
aber ist das korrekt, Stringteile mit
numerischen Variablen zu einem neuen
String zusammenzusetzen, oder müßte man
die numerischen Variablen zuerst irgendwie
in einen String verwandeln?
(Mit Netscape funktioniert's übrigens nicht.
Kann das damit was zu tun haben?)
Bye, Robert
Moin!
Kann man das eigentlich so machen?
Ich meine, es funktioniert zwar prima,
aber ist das korrekt, Stringteile mit
numerischen Variablen zu einem neuen
String zusammenzusetzen, oder müßte man
die numerischen Variablen zuerst irgendwie
in einen String verwandeln?
Im Prinzip schon. Aber Javascript paßt den Variablentyp an, wenn Zahlen mit Text addiert werden sollen.
(Mit Netscape funktioniert's übrigens nicht.
Kann das damit was zu tun haben?)
Von welchem Netscape sprichs du?
- Sven Rautenberg