kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 Akshat
Akshat
Вопрос

Могут ли живые изменения Meteor иметь анимацию?

Как Meteor обрабатывает изменения в реальном времени? Например, я хочу, чтобы изменения были не мгновенными, а с какой-то анимацией. Если мы разместим изменяемые элементы с помощью css-анимации/переходов, будет ли это работать? Как насчет анимации jQuery для старых браузеров?

40 2012-06-02T10:24:34+00:00 3
Wayne Werner
Wayne Werner
Редактировал вопрос 20-го июня 2012 в 9:22
Программирование
meteor
Решение / Ответ
Tim Bartsch
Tim Bartsch
18-го июля 2013 в 12:15
2013-07-18T12:15:45+00:00
Дополнительно
Источник
Редактировать
#16339206

Вот рабочий пример простой анимации с помощью meteor.

Ситуация заключается в том, что у нас есть список элементов. Если пользователь нажмет на любой из этих элементов, элемент анимируется на 20px влево.

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();
  }
});

Шаблоны

<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; }

Вместо использования причудливых CSS вы также можете анимировать с помощью jQuery:

Template.myItem.rendered = function(){
  if(Session.get("selected_item") === this.data._id){
    $(this.firstNode).animate({
      left: "-20px"
    }, 300);
  }
};

Но тогда вам придется удалить код CSS.

.myItem { transition: all 200ms 0ms ease-in; }
.selected { left: -20px; }

Tim Bartsch
Tim Bartsch
Редактировал ответ 18-го июля 2013 в 3:09
12
0
Хотите что-то узнать? Задавайте Ваш вопрос на нашем сайте
ru.kzen.dev
Michel L&#246;hr
Michel Löhr
4-го июня 2012 в 10:18
2012-06-04T10:18:12+00:00
Дополнительно
Источник
Редактировать
#16339205

Существует следующее обходное решение:

<template name="foo">
  ..content..
  {{bar}}
</template>

В этом случае Meteor будет вызывать Template.foo.bar каждый раз, когда этот шаблон будет отрисован. Таким образом, внутри этой функции вы можете делать любые виды Jquery или CSS3-анимации (например, добавляя класс в div шаблона).

5
0
Хотите что-то узнать? Задавайте Ваш вопрос на нашем сайте
ru.kzen.dev
 wakqasahmed
wakqasahmed
17-го ноября 2013 в 7:46
2013-11-17T07:46:09+00:00
Дополнительно
Источник
Редактировать
#16339207

Для CSS-переходов есть два варианта, которые вы можете использовать:

1. Reactively: the Meteor way
2. Directly: the jQuery way

Вот рабочий пример: http://bindle.me/blog/index.php/658/animations-in-meteor-state-of-the-game

2
0
Похожие сообщества 1
Meteor.js - русскоговорящее сообщество
Meteor.js - русскоговорящее сообщество
88 пользователей
Смотрите также @webpack_ru
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Andrei Kalinin
Зарегистрирован 2 недели назад
2
Koroleva Ego
Зарегистрирован 1 месяц назад
3
Star Lenon
Зарегистрирован 1 месяц назад
4
Данил Жевнеров
Зарегистрирован 1 месяц назад
5
Анна Литвиненко
Зарегистрирован 2 месяца назад
Хотите что-то узнать? Задавайте Ваш вопрос на нашем сайте
ru.kzen.dev
KO
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией