我正在将JSON数据加载到页面并使用,appendTo()
但是我试图淡化结果,有什么想法吗?
$("#posts").fadeIn();
$(content).appendTo("#posts");
我发现文档上的append
和之间存在差异appendTo
。
我也尝试过这个:
$("#posts").append(content).fadeIn();
我明白了,上面的技巧!
但是我将其"undefined"
作为我的JSON值之一。
Answers:
如果在添加内容之前将其隐藏并链接到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();
我不知道我是否完全了解您遇到的问题,但是类似的事情应该可以解决:
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;
});
基本上,您是将每个内容(每个“帖子”)包装在一个跨度中,将该跨度的显示设置为无,以使其不显示,然后淡入。
您必须意识到代码不是线性执行的。动画的东西不能指望停止执行代码来执行动画然后返回。
commmand();
animation();
command();
This is because the animation uses set timeout and other similar magic to do its job and settimeout is non-blocking.
This is why we have callback methods on animations to run when the animation is done ( to avoid changing something which doesn't exist yet )
command();
animation( ... function(){
command();
});
我尝试了您所说的技巧,但没有用。 它与以下代码一起工作
$("div").append("content-to-add").hide().fadeIn();