Использование fadein и append

Я загружаю данные JSON на свою страницу и использую appendTo(), но я пытаюсь скрыть свои результаты, есть идеи?

$("#posts").fadeIn();
$(content).appendTo("#posts");

Я видел в документах разницу между append и appendTo.

Я тоже пробовал:

$("#posts").append(content).fadeIn();

Я понял, вышеперечисленное помогло!

Но я получаю "undefined" как одно из значений JSON.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
74
0
54 265
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

Ответ принят как подходящий

Если вы скроете контент перед его добавлением и привяжете к нему метод fadeIn, вы должны получить желаемый эффект.

// Create the DOM elements
$(content)
// Sets the style of the elements to "display:none"
    .hide()
// Appends the hidden elements to the "posts" element
    .appendTo('#posts')
// Fades the new content into view
    .fadeIn();

Я пробую $ (elem) .slideUp (). AppendTo (div) .slideDown (); но в FF5 это не делается по порядку. Я использую обратный вызов slideUp, чтобы затем добавить и слайдDown по порядку, но тогда append не имеет обратного вызова, поэтому элемент кажется уже видимым. Ответ Кента Фредрика решает эту проблему, поэтому меня беспокоит только то, что добавление выполняется до скольжения вниз.

TuteC 06.08.2011 00:03

Ответ Кента касается использования методов анимации, таких как slideUp и slideDown, с обратными вызовами, но OP действительно нуждался в анимации только в конце цепочки методов. Вам нужна дополнительная помощь?

Kevin Gorski 09.08.2011 02:44

Вы должны знать, что код не выполняется линейно. Нельзя ожидать, что анимированный материал остановит выполнение кода, чтобы выполнить анимацию, а затем вернется.


   commmand(); 
   animation(); 
   command();  

Это связано с тем, что в анимации для выполнения своей работы используется установленный тайм-аут и другая подобная магия, а settimeout не блокирует.

Вот почему у нас есть методы обратного вызова для анимации, которые запускаются, когда анимация завершена (чтобы избежать изменения чего-то, чего еще не существует).

   command(); 
   animation( ... function(){ 
      command(); 
   });

Я не знаю, полностью ли я понимаю вашу проблему, но должно сработать что-то вроде этого:

HTML:

<div id = "posts">
  <span id = "post1">Something here</span>
</div>

Javascript:

var counter=0;

$.get("http://www.something/dir",
    function(data){
        $('#posts').append('<span style = "display:none" id = "post' + counter + ">" + data + "</span>" ) ;
        $('#post' + counter).fadeIn();
        counter += 1;
    });

По сути, вы оборачиваете каждую часть контента (каждую «публикацию») в промежуток, устанавливая для этого диапазона отображение значения «none», чтобы он не отображался, а затем постепенно его усиливали.

Отличный пример того, как делать простые вещи очень сложным. Извини чувак ;)

Sliq 06.06.2013 17:38

Думаю, это должно решить вашу проблему.

$('#content').prepend('<p>Hello!</p>');
$('#content').children(':first').fadeOut().fadeIn();

Если вместо этого вы выполняете добавление, вам нужно вместо этого использовать селектор: last.

предполагая, что в css определено следующее:

.new {display:none} 

и javascript должен быть:

$('#content').append('<p class='new'>Hello!</p>');
$('#content').children('.new').fadeIn();
$('#content').children.removeClass('new');
$('#content').children('.new').hide();

Сначала конвертируем полученные данные в объект jQuery. Во-вторых, немедленно спрячьте это. В-третьих, добавьте его к целевому узлу. И после всего этого мы можем явно использовать необходимую анимацию, как и fadeIn :)

jNode = $("<div>first</div><div>second</div>");
jNode.hide();
$('#content').append(jNode);
jNode.fadeIn();

У меня есть выразительный, для этого:

$("dt").append(tvlst.ddhtml);
$("dd:last").fadeIn(700);

Что «выразительно»?

Pang 11.04.2018 13:29
$(output_string.html).fadeIn().appendTo("#list");

Я попробовал то, что вы сказали, помогло, но не работает. он работал со следующим кодом

$("div").append("content-to-add").hide().fadeIn();

Другие вопросы по теме