0

我试图一次选择几个元素并在窗口加载时淡入它们。显而易见的

$('.home').delay(200).fadeIn(400);

没有用,也没有

$('.home').each(function(){
    $(this).delay(200).fadeIn(400); 
});​

最好的方法是什么?

http://jsfiddle.net/FaqBX/4/

4

10 回答 10

4

您需要在它们淡入之前隐藏它们。

于 2012-10-04T20:35:23.147 回答
3

你需要$(window).ready代替而$(window).load不是document.load。他们需要先隐藏:http: //jsfiddle.net/f3XhW/

于 2012-10-04T20:36:02.093 回答
0

尝试这个:

setTimeout(function () {
    $('.home').fadeIn(400);
}, 200);
于 2012-10-04T20:34:54.073 回答
0

一个肮脏的解决方案是先隐藏元素,然后使用fadeIn:

$(window).load(function() {
    $('.home').attr('style', 'display: none;');//to hide them
    // First attempt
    $('.home').delay(200).fadeIn(400);
    // Second attempt
    $('.home').each(function(){
        $(this).delay(200).fadeIn(400); 
    });
});
于 2012-10-04T20:36:46.670 回答
0

试试这个,记得在你的 .home 上有 display:none

 $(window).ready(function() {
     $('.home').delay(200).fadeIn(400);
 });​
于 2012-10-04T20:36:46.850 回答
0

在 jsFiddle 上,您不需要window.load,因为它是默认设置。

$('.home').fadeTo(0, 0).delay(1000).fadeTo(400, 1);

演示:http: //jsfiddle.net/elclanrs/FaqBX/9/

于 2012-10-04T20:37:16.637 回答
0

试试这个小提琴:

http://jsfiddle.net/FaqBX/7/

您需要先隐藏元素(作为 user1689607),然后我将您的 fiddle 更改为 no wrap(head),因为它已经是 window.load。

于 2012-10-04T20:37:34.000 回答
0

在淡入之前隐藏它们并使用准备好的文档而不是 window.load。

$(function() {
    // First attempt
    $('.home').delay(200).fadeIn(400);
});​

http://jsfiddle.net/c7LzQ/

于 2012-10-04T20:37:36.140 回答
0

http://jsfiddle.net/FaqBX/13/

在 CSS 中首先隐藏:

.home { display: none; } 

如果您必须使用延迟:

window.setTimeout(function() {
    $('.home').fadeIn(400);
}, 200);

否则:

 $('.home').fadeIn(400);
于 2012-10-04T20:39:44.157 回答
0

在显示之前用 CSS 隐藏它。如果它已经可见,则不能淡入它。

HTML:

<div class="home">
    <h1>Home</h1>
</div>
<div class="home">
    <p>This is the home.</p>
</div>

Javascript:

$(function() {
    $('.home').fadeIn(400);
});​

CSS:.home {display:none;}​</p>

于 2012-10-04T20:42:48.660 回答