Momentan möchte ich die echte Hintergrundfarbe eines bestimmten Objekts erhalten, hier bedeutet real , was die Leute sehen, zum Beispiel mit folgendem Code:
%Vor% Die echte Hintergrundfarbe von span # bar sollte rbg(255,0,0)
sein.
Bisher mache ich es wie das . Aber ich denke, meine Lösung ist etwas dumm, oder vielleicht gibt es einen Defekt darin. Also frage ich mich, ob es einen besseren Weg gibt, das zu tun?
Vielen Dank im Voraus:)
Pure javascript Version:
%Vor%Beachten Sie, dass partielle Transparenz nicht berücksichtigt wird.
Dies ist eine schwierige Sache, um richtig zu kommen :( und ich glaube, ein 100% korrektes Ergebnis in allen Fällen ist unmöglich.
background-color wird nicht vererbt. getComputedStyle gibt nur das zurück, was in elem.style.backgroundColor ist, wenn dort, oder anders, was von den geladenen CSS-Stylesheets abgeleitet ist. Wenn diese beiden Werte immer noch keinen Wert zurückgeben, wird rgba(0, 0, 0, 0)
zurückgegeben. In diesem Fall müssen Sie das DOM hochklettern, um zu sehen, welche Elemente die Eltern haben. Und dies ist im Falle von Rahmen, die ihren Hintergrund von dem (dh oberen) Rahmen hinter ihnen ableiten können, noch komplizierter.
Hier ist ein Versuch:
%Vor% (Ein Problem damit ist, dass jemand, der explizit den Hintergrund eines Elements auf rgba(0, 0, 0, 0)
im Stil des Elements oder eines CSS-Stylesheets setzt, diesen Wert anstelle des berechneten Wertes haben möchte, der mit diesem Code nicht funktioniert.)
Tags und Links javascript html jquery css