При скрытии удаление элемента из DOM происходит быстрее, чем при использовании hide()
.
var sortableLines = $('#sortable-lines');
$('#hide').click(function() {
$('#timer').text("Hiding");
sortableLines.remove();
});
Все еще медленно, когда вы append()
возвращаете его в DOM.
Возможный обходной путь - показать первые 10 или около того элементов при нажатии кнопки «Показать», а затем setInterval
, чтобы последовательно их отобразить.
Редактировать: Найден еще один хак:
Вы должны установить контейнер на overflow: hidden
:
#linecontainer { overflow: hidden; }
При скрытии переместите этот элемент вверх, установив для margin-top
большое отрицательное число.
$('#hide').click(function() {
$('#timer').text("Hiding");
sortableLines.css('margin-top', '-1000000px');
});
При отображении сбросьте его margin-top
.
$('#show').click(function() {
$('#timer').text("Showing");
sortableLines.css('margin-top', '0');
});
И он показывает и мгновенно скрывает .