Ich möchte jede Vorlage Puls jedes Mal, wenn es gerendert wird. Um ein visuelles Debugging-Tool zu haben, um zu sehen, was gerendert wird. Ich stelle mir so etwas vor, wenn eine Vorlage (ein kleines Segment) gerendert wird, ihre Hintergrundfarbe auf Rot gesetzt wird und diese rote Farbe langsam in die ursprüngliche Hintergrundfarbe oder den Hintergrund übergeht (auch wenn es transparent ist). Wenn ich also sehe, dass etwas immer rot ist, weiß ich, dass es ständig neu gezeichnet wird.Pulse die Vorlage jedes Mal, wenn es in Meteor gerendert wird
6
A
Antwort
2
Basierend auf dem Code von @Hubert OG und eine Idee von this blog post, ich folgende Debugging-Code für Meteor-Rendering gemacht:
pulseNode = (i, node) ->
return unless node.style
$node = $(node)
prePulseCss = $node.data('prePulseCss') ? node.style.cssText
prePulseBackgroundColor = $node.data('prePulseBackgroundColor') ? $node.css('backgroundColor')
$node.data(
'prePulseCss': prePulseCss
'prePulseBackgroundColor': prePulseBackgroundColor
).css('backgroundColor', 'rgba(255,0,0,0.5)').stop('pulseQueue', true).animate(
backgroundColor: prePulseBackgroundColor
,
duration: 'slow'
queue: 'pulseQueue'
done: (animation, jumpedToEnd) ->
node.style.cssText = prePulseCss
).dequeue 'pulseQueue'
pulse = (template) ->
$(template.firstNode).nextUntil(template.lastNode).addBack().add(template.lastNode).each pulseNode
_.each Template, (template, name) ->
oldRendered = template.rendered
counter = 0
template.rendered = (args...) ->
console.debug name, "render count: #{ ++counter }"
oldRendered.apply @, args if oldRendered
pulse @
1
Hier ist ein einfaches Blinzeln. Das Animieren der Hintergrundfarbe erfordert zusätzliche Bibliotheken, siehe jQuery animate backgroundColor.
var pulseNode = function(node) {
if(!node.style) return;
var prev = node.style['background-color'] || 'rgba(255,0,0,0)';
$(node).css('background-color', 'red');
setTimeout(function() {
$(node).css('background-color', prev);
}, 1000);
};
pulse = function(template) {
for(var node = template.firstNode; true; node = node.nextSibling) {
pulseNode(node);
if(node === template.lastNode) return;
}
}
nun für jede Vorlage, möchten Sie diese verwenden, tun
Template.asdf.rendered = function() {
pulse(this);
}
Verwandte Themen
- 1. Jedes Mal, wenn die Schaltfläche geklickt wird, wird MVVM verwendet.
- 2. Aktivität erhöht RAM verwenden jedes Mal, wenn es gestartet wird
- 3. Inkrementieren jedes Mal, wenn Skript ausgeführt wird
- 4. Namensschild, das sich jedes Mal überschneidet, wenn es geladen wird
- 5. SharedPreferences wird zurückgesetzt, jedes Mal die App
- 6. Zufällige Farbe jedes Mal, wenn auf die Schaltfläche geklickt wird
- 7. Zugang Elterndatenkontext in Vorlage gerendert Funktion in Meteor
- 8. Meteor Vorlage jede Schleife, bieten andere Vorlage jedes X Ergebnisse
- 9. Meteor Vorlage Reload Unendlichkeit
- 10. Jquery Dialogfeld erhöht die Größe der Eingabesteuerelemente jedes Mal, wenn es geöffnet wird
- 11. Versuche, Durchschnitt jedes Mal, wenn etwas hinzugefügt wird
- 12. Kann die Interaktivität das Popup-Ansichtsmodell jedes Mal zurücksetzen, wenn es ausgelöst wird?
- 13. Wie man JButton hinzufügen Doubles jedes Mal, wenn es geklickt
- 14. Aufruf if-Anweisung jedes Mal, wenn eine Eingabe geändert wird
- 15. Einen Cronjob jedes Mal anpassen, wenn er ausgeführt wird?
- 16. Warum fügt ein #if Spacebars-Tag in eine Meteor-Vorlage ein Eine leere Seite wird gerendert?
- 17. Xcode wird unerwartet beendet, jedes Mal wenn ich Xcode öffnen
- 18. Warum wird das F # -Klassenmitglied jedes Mal initialisiert, wenn es aufgerufen wird?
- 19. Cron-Job erstellt leere Datei jedes Mal, wenn es läuft
- 20. Der Dialog wird jedes Mal angezeigt?
- 21. Broadcast-Empfänger wird nicht jedes Mal aufgerufen
- 22. Nicht jedes Mal anzeigen, wenn startUpdatlocation
- 23. IAuthorizationFilter wird nicht jedes Mal aufgerufen
- 24. Wie wird ein Skript jedes Mal ausgeführt, wenn eine Vorlage in einer JavaSrcript SPA-Anwendung ausgelöst wird?
- 25. Chrome Prerender-Funktion wird jedes Mal abgebrochen
- 26. Wird [NSString-Hash] jedes Mal berechnet?
- 27. Swift - warum NSColor heller wird, wenn es gerendert wird
- 28. Blackberry Playbook - App in Entwicklung hängt jedes zweite Mal, wenn es ausgeführt wird
- 29. if-Anweisung jedes Mal ausführen, wenn die URL-Hash
- 30. MySQL - Update-Ansicht Spalte jedes Mal, wenn die Zeile SELECTED
Wenn Sie jQuery verwenden statische CSS für die Einstellung, können Sie 'animate' auch ohne zusätzliche Bibliotheken, nicht wahr? – Mitar
Das Problem, das ich habe, ist, dass es den Hintergrund des ursprünglichen Zustandes nicht wiederherstellt. – Mitar