Wie geht Meteor mit Live-Änderungen um? Zum Beispiel möchte ich nicht, dass Änderungen sofort erfolgen, sondern mit einer Art Animation. Wenn wir die Elemente, die geändert werden sollen, mit CSS-Animationen/Übergängen platzieren, funktioniert das? Was ist mit jQuery-Animationen für ältere Browser?Kann Meteor live Änderungen haben Animationen?
Antwort
Hier ist ein Arbeitsbeispiel für eine einfache Animation mit Meteor.
Die Situation hier ist, dass wir eine Liste von Elementen haben. Wenn der Benutzer auf eines dieser Elemente klickt, animiert das Objekt 20 Pixel nach links.
JS
//myItem
Template.myItem.rendered = function(){
var instance = this;
if(Session.get("selected_item") === this.data._id){
Meteor.defer(function() {
$(instance.firstNode).addClass("selected"); //use "instance" instead of "this"
});
}
};
Template.myItem.events({
"click .myItem": function(evt, template){
Session.set("selected_item", this._id);
}
});
//myItemList
Template.myItemList.helpers({
items: function(){
return Items.find();
}
});
Vorlagen
<template name="myItem">
<div class="myItem">{{name}}</div>
</template>
<template name="myItemList">
{{#each items}}
{{> myItem}}
{{/each}}
</template>
CSS
.myItem { transition: all 200ms 0ms ease-in; }
.selected { left: -20px; }
Statt Phantasie CSS verwenden, können Sie auch mit jQuery animieren:
Template.myItem.rendered = function(){
if(Session.get("selected_item") === this.data._id){
$(this.firstNode).animate({
left: "-20px"
}, 300);
}
};
Aber dann müssen Sie den CSS-Code entfernen.
.myItem { transition: all 200ms 0ms ease-in; }
.selected { left: -20px; }
Danke, das hat mir geholfen. Hinweis 'if (Session.get (" selected_item ") === this.data._id) hat bei mir nicht funktioniert; Ich musste die 'gerenderte' Funktion so modifizieren, dass sie eine Zeile wie diese enthielt: '$ ('#' + Session.get (" selected_item ")). AddClass (" selected ")'. –
@TimBartsch Ich kann 'Meteor.defer()' nicht aus den Dokumenten finden. Was tut es? –
Es gibt eine Abhilfe wie folgt aus:
<template name="foo">
..content..
{{bar}}
</template>
In diesem Fall Meteor Template.foo.bar
jedes Mal diese Vorlage gerendert wird nennen. Innerhalb dieser Funktion können Sie alle Arten von Jquery- oder CSS3-Animationen ausführen (zum Beispiel indem Sie eine Klasse zum Templates div hinzufügen).
ein Beispiel wäre hier toll gewesen. (Beachten Sie, dass Upvotes für "nützliche Fragen" viel mehr sind als "Antwort ist nützlich"). Vielleicht können Sie Ihre Antwort aktualisieren? –
Für CSS-Übergänge gibt es zwei Optionen können Sie gehen mit:
1. Reactively: the Meteor way
2. Directly: the jQuery way
Hier ist ein funktionierendes Beispiel ist: http://bindle.me/blog/index.php/658/animations-in-meteor-state-of-the-game
- 1. Meteor Sammlung beobachten Änderungen rihtly
- 2. Handhabung Bildschirmauflösung Änderungen für QML Animationen
- 3. Wie kann ich 2 Meteor Version haben?
- 4. Wie kann ich Live-Nachladen in Meteor deaktivieren?
- 5. MAMP Zeit zwischen Live-Änderungen sehen
- 6. CSS-Animationen vs JQuery-Animationen
- 7. So ziehen Sie Änderungen zurück zum Git-Repository, nachdem einige Änderungen am Live-Server vorgenommen wurden
- 8. iPhone: Nach einer Weile haben alle Animationen aufgehört
- 9. UIView animateWithDuration: Dauer: Animationen: Abschluss: scheint einen Standardübergang zu haben?
- 10. Wie kann ich den Live-Status einer Tabelle nach Änderungen in der Datenbank ändern?
- 11. Meteor observeChanges(). Wie überprüft man die tatsächlichen Änderungen?
- 12. Kann eine Meteor-Anwendung ausgeglichen werden?
- 13. Trigger-Animationen
- 14. C# UWP XAML Animationen
- 15. Das Validierungsobjekt muss mindestens einen Operator haben./Meteor mongo
- 16. Git Push-to-Live-Server
- 17. Kann nicht ziehen b/c "Sie haben Änderungen nicht gesetzt", aber der Status sagt, dass es keine Änderungen gibt
- 18. Mehrere aframe Animationen
- 19. Wie kann ich ein Live-Reload in einem öffentlich zugänglichen Ruby-Server verwenden?
- 20. Ausdruck Mischung für Animationen
- 21. React Lifecycle Animationen
- 22. Meteor: Kann keine Daten abonnieren
- 23. Live Tile like Animation
- 24. Ziehen .live() Funktionalität von jQuery
- 25. jQuery Verzögerung zwischen Animationen
- 26. Live-Bearbeitung in PhpStorm
- 27. Kann ich updaten Meteor rückgängig machen?
- 28. Paypal/Laravel kann keine Live-Zahlung
- 29. bewegen Span Tag Animationen
- 30. jQuery live ziehbar/live dropable?
+1 interessant, das wahrscheinlich wi ll erfordern einige Implementierungsänderungen. –