2016-11-07 3 views
-3

У меня есть поток событий в моем браузере. Я хочу оживить их как список - когда приходит новое событие, другие элементы плавно перемещаются вниз по одному элементу, а новый исчезает в верхней части списка.Как я могу оживить поток журнала в javascript/css

Я предпочитаю использовать легкий механизм анимации, как transit.js или velocity.js

Я попытался translateY: '1em', но вместо перемещения всех элементов вниз 1 линия, кажется, чтобы переместить их в первый раз, и последовательные звонки хранят его там.

пример кода

<ul id="container"> 
    <li>blah</li> 
    <li>yoyo</li> 
</ul> 

и JS

$("#container").children().velocity({ 
    translateY: "1em" 
}, 1000); 

$("#container").prepend("<li>yar</li>"); 

$("#container").children().velocity({ 
    translateY: "1em" 
}, 1000); 

$("#container").prepend("<li>yar</li>"); 

на codepen: http://codepen.io/ankopainting/pen/KNwYxJ

+1

Добавить новый элемент и назвать 'slideDown()', может быть? Трудно помочь вам без вас, показывая нам какой-либо существующий код –

+0

Мой существующий код не работает! Я ищу технику, как это можно сделать. Я много пробовал. И нет, добавление элемента и вызов slideDown() не работают - это отображает элемент со скользящим движением, а не переводит их все и исчезает в новом. – Anko

+0

Спасибо за добавление образца. Для справки, нам нужно увидеть ваш сломанный код, чтобы мы могли видеть контекст, в котором вы работаете. Я добавил вам ответ. –

ответ

1

Чтобы достичь того, что вам нужно вы можете предварять новый элемент, а затем вызвать slideDown(), как это:

$('button').click(function() { 
 
    $('<li>foo</li>').addClass('added-item').prependTo('#container').slideDown(); 
 
});
.added-item { 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul id="container"> 
 
    <li>blah</li> 
 
    <li>yoyo</li> 
 
</ul> 
 

 
<button>Add item</button>

+0

Это просто заставляет новый элемент перемещаться, а не перемещать предметы и исчезать в новом элементе. – Anko