【问题标题】:fade in div following showDiv() setTimeout在 showDiv() setTimeout 之后淡入 div
【发布时间】:2011-08-22 20:42:48
【问题描述】:

非常快速的问题 - (我希望!)

我有一个 div 直到页面的其余部分加载后才显示:

<script>
    function showDiv(){
        var obj = document.getElementById('test');
        obj.style.display = 'block';
    }
</script>

在我的 html 的头部,以及正文中的以下代码:

<body onLoad="setTimeout('setTimeout(showDiv()', 1000);">
<div id="test" style="display:none;">

虽然 div 在设定的时间后正确加载,但我想知道是否有办法在给定的“超时”之后淡入这个 div,使用类似的东西:

<script type="text/javascript">
$(function(){  // $(document).ready shorthand
$('#test').hide().fadeIn(1500);
});
</script>

例如?此刻,div 突然出现,虽然我希望让它以某种方式淡入。我曾尝试合并这两个 js 函数,但为此没有成功。非常感谢任何帮助或建议!

【问题讨论】:

  • setTimeout('setTimeout(showDiv()', 1000); 语法无效。
  • 你的 body onload 事件有错误 setTimeout('setTimeout(showDiv()', 1000); 缺少一个括号
  • 你的body onload应该是:setTimeout(showDiv(), 1000);
  • @Juddling showDiv后面的括号不需要,否则浏览器会直接运行函数。
  • @Dennis 你的意思是它会在超时前执行 showDiv 吗?

标签: jquery css settimeout fadein


【解决方案1】:
$(function(){

    $('#test').hide();

    setTimeout(function(){
        $('#test').fadeIn('slow');
    },1000);

});

【讨论】:

  • 完美!非常感谢,京东
【解决方案2】:

$('#test').hide().delay(1500).fadeIn('slow');

JsFiddle DEMO

jQuery's .delay()

【讨论】:

    【解决方案3】:

    你应该在 jquery 中使用 load 事件,像这样:

    $(window).load(function() {
      $('#test').fadeIn('slow');
    });
    

    见:http://api.jquery.com/load-event/

    &lt;body onLoad="setTimeout('setTimeout(showDiv()', 1000);"&gt;在 jquery 领域并不酷。 :p

    另见:http://api.jquery.com/ready/

    【讨论】:

    • 感谢所有回复 - 我知道我的代码有多么混乱和糟糕,只能道歉!!!我使用了 AlienWebguys 功能,它就像一个魅力。再次感谢
    猜你喜欢
    • 1970-01-01
    • 2012-07-06
    • 2014-04-25
    • 2015-09-07
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多