Javascript 同时使用fadeIn和insertBefore

Javascript 同时使用fadeIn和insertBefore,javascript,jquery,Javascript,Jquery,我正在尝试为下面代码的最后一行设置动画,但它不起作用。是因为我将jquery与常规javascript相结合吗 function addtext(name) { var text = document.getElementsByName(name)[0].value; var sth = text.length; if(sth > 0) { // $.post( "../parsers/new_text.php", { text: text } );

我正在尝试为下面代码的最后一行设置动画,但它不起作用。是因为我将jquery与常规javascript相结合吗

function addtext(name) {
    var text = document.getElementsByName(name)[0].value;
    var sth = text.length;
    if(sth > 0) {
        // $.post( "../parsers/new_text.php", { text: text } );
        var area = document.getElementsByName(name)[0];
        area.value = "";
        var div = document.createElement("div");
        var texts = document.createTextNode(text);
        div.appendChild(texts);
        var elem = document.getElementById("texts");
        $(elem).insertBefore(div, elem.firstChild).fadeIn();
    }
}

如果您已经在使用jQuery,那么如果不必使用纯javascript,也可以不使用纯javascript

这个

可以写得这么简短,像这样

$('#texts').prepend('<div>Some text you want here, and even a variable like ' + someVar + '</div>');
$('#text').prepend('这里需要一些文本,甚至是'+someVar+''这样的变量);
此外,要使淡入淡出正常工作,您可以执行以下操作:

$('#texts').prepend('<div style="display: none;">Some text you want here, and even a variable like ' + someVar + '</div>').hide().fadeIn(2000);
$('#texts').prepend('这里需要的一些文本,甚至像'+someVar+''这样的变量)。hide().fadeIn(2000);
只需使用display none,使其不会立即显示,然后使用fadeIn()

要使元素褪色,必须先将其隐藏。


编辑:

这是如果您希望整个父div为fadeIn

$('#texts').prepend('<div class="texttt">Some text you want here, and even a variable like</div>').hide().fadeIn(2200);
$('#texts').prepend('<div class="texttt">Some text you want here, and even a variable like</div>');

$('.texttt').hide().fadeIn(2000);
$('#text').prepend('这里需要一些文本,甚至是一个变量').hide().fadeIn(2200);

这是如果您只想将文本/新div添加到fadeIn

$('#texts').prepend('<div class="texttt">Some text you want here, and even a variable like</div>').hide().fadeIn(2200);
$('#texts').prepend('<div class="texttt">Some text you want here, and even a variable like</div>');

$('.texttt').hide().fadeIn(2000);
$('#text').prepend('这里需要一些文本,甚至像这样的变量');
$('.texttt').hide().fadeIn(2000);

您正在尝试这样做吗

$('<div/>', {
    text: 'text'
}).fadeIn('slow', function(){
    $(this).appendTo('body');
});
$(“”{
文本:“文本”
}).fadeIn('slow',function(){
$(this.appendTo('body');
});

Fiddle:

您没有使用insertBefore对吗

$(elem).insertBefore(div, elem.firstChild).fadeIn();
正确的用法是一个参数:
newElement.insertBefore(target)

另一种方式

var $div = $(div);
$(elem).prepend($div);
$div.fadeIn();

对于jQuery fadeIn和slidein,首先需要隐藏元素。另外,您将只希望使用jQuery。按照jQuery处理选择器的方式,处理jQuery中的所有内容要简单得多

对于任何需要css先隐藏的元素

display: hidden;
您可以通过javascript实现这一点:

$('#elementId').css('display', 'hidden');
一旦元素被隐藏,fadeIn应该可以工作


您是否已将jQuery库包含在代码中以使其可用?只是淡入淡出不起作用。当我删除“$(elem)”时,它可以工作。我包含code.jquery.com/jquery-1.11.0.min.js“>。谢谢,这更有效,但fadeIn仍然不起作用。当我使用display:none时,什么也不显示。我尝试了visibility:hidden,div的空间显示(它有边距),但它仍然不可见。