Quantcast
Channel: SELFHTML-Forum
Viewing all articles
Browse latest Browse all 746

Inline-SVG → auf Style(CSS) per JS zugreifen?

$
0
0

Hm. Ich mach ja eigentlich keine UI mehr, habe aber noch eines meiner uralten Projekte auf dem Zettel: Mit 3 Grafiken ging das mal... xeyes für Webseiten, ein nettes Gimmik.

xeyes: Augen, die der Maus folgen...

Ich will auf die die CSS-Eigenschaften der Pupillen (Pupil_1, Pupil_2) und der darauf befindliche Reflexe PupilReflex_1, PupilReflex_2 lesend und schreibend zugreifen.

Wie zum Teufel geht das mit Javascript?

DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"xml:lang="de"lang="de"><head><title>Eyestitle><metahttp-equiv="content-type"content="text/html;charset=utf-8"/><metaname="generator"content="Geany 1.38"/><style>#Eyes{display: -Eyes{display: block;width:70px;height:35px;position: absolute;top:0px;left:calc(50vw - 50px);}style>head><body><p>Hih!p><svgid="Eyes"viewBox="0 0 200 100"><style>#Eye_1{cx: 40px;cy: 50px;rx: 35px;ry: 40px;fill: none;stroke: yellow;stroke-width: 15px;}#Eye_2{cx: 135px;cy: 50px;rx: 35px;ry: 40px;fill: none;stroke: red;stroke-width: 15px;}#Pupil_1{cx: 40px;cy: 50px;rx: 20px;ry: 20px;fill: black;stroke: none;stroke-width: 0;}#PupilReflex_1{cx: 45px;cy: 45px;rx: 5px;ry: 5px;fill: white;stroke: gray;stroke-width: 3px;}#Pupil_2{cx: 135px;cy: 50px;rx: 20px;ry: 20px;fill: black;stroke: none;stroke-width: 0;}#PupilReflex_2{cx: 140px;cy: 45px;rx: 5px;ry: 5px;fill: white;stroke: gray;stroke-width: 3px;}style><gid="Layer1"><ellipseid="Eye_1"/><ellipseid="Eye_2"/><ellipseid="Pupil_1"/><ellipseid="Pupil_2"/><ellipseid="PupilReflex_1"/><ellipseid="PupilReflex_2"/>g>svg><body>

(sieht so aus:)

xeyes als SVG - noch ohne Manipulation

Wenn ich versuche, die Eigenschaften zu lesen ...

... erhalte ich pro Objekt eine ordentliche Menge (im Mozilla sind es 1113) Namen von Eigenschaften, aber eben keine Werte. Alles NULL.

Muss ich es wie bei den früheren Grafiken machen und wirklich jedes Element, dessen Position ich manipulieren will, einzeln ins HTML einbauen oder kann ich via JS „ins SVG greifen”?

Und, um gleich den von Seiten Gunnars zu erwartenden Einwand abzufangen:

  • Kann ich irgendwie feststellen, ob es überhaupt eine Maus (einen Mauszeiger) gibt?

Viewing all articles
Browse latest Browse all 746