Ich möchte den Achsen-Datum/Uhrzeit-Text formatieren, um den Tag stärker hervortreten zu lassen.Styling axis text: Ist dies der beste (oder einzige) Weg, dies zu tun?
Basierend auf einem Haufen QAs hier kam ich unter der Funktion auf. Ich arbeite an einer Zeitleiste basierend auf der Brush & Zoom example, also rufe ich diese Funktion bei jedem Pinsel und Zoom-Ereignis auf.
Die Timeline ist immer noch performant, aber ich frage mich, ob es eine effizientere Möglichkeit gibt, dies zu tun. Ich habe d3
(oder JS, für diese Angelegenheit) nicht sehr lange verwendet, so dass ich manchmal immer noch Dinge zusammenbastle, ohne völlig zu verstehen, was vor sich geht und welche möglichen Konsequenzen daraus resultieren können.
function styleAxis() {
d3.selectAll('g.tick')
.select('text')
.style('fill', function (d) {
var txt = d3.select(this).text().split(" ");
var days = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
if (days.indexOf(txt[0]) != -1) {
return "white"
} else {
return "gray"
}
});
}
Ergebnis:
ich würde js verwenden, um eine atrtrib nur auf den speziellen Tags zu setzen, dann triff es in css; schnelleres Rendering (css läuft in C), bessere Separation, und einfacher später zusätzliche Stile mit Media Queries et al ... – dandavis