延迟 5 秒后用文字替换图像

Posted

技术标签:

【中文标题】延迟 5 秒后用文字替换图像【英文标题】:Replace image with text after 5 seconds delay 【发布时间】:2012-05-19 18:57:12 【问题描述】:

目标 使用 jQuery 在延迟 5 秒后将一个 div 替换为另一个。

说明 我想在一个 div 中显示一个图像 5 秒钟,然后它应该被另一个 div 中的文本替换。

HTML 代码

<div id="outer">Image here</div>
<div id="text">Text here</div>

jQuery 代码

<script type="text/javascript">
    $(document).ready(function()
    
        setTimeout(function()
        
            $("div#outer").fadeOut("slow", function ()
            
                $("div#outer").remove();
            );
         , 5000);
     );
</script>

提前致谢。

【问题讨论】:

【参考方案1】:

试试这个:

<script type="text/javascript">
        $(document).ready(function()
        
            setTimeout(function()
            
                $("div#outer").fadeOut("slow", function ()
                
                    $("div#outer").hide();
                    $("div#text").show();
                );
             , 5000);
         );
    </script>

或者,如果您实际上是想将 div text 中包含的文本移动到 div outer,请执行以下操作:

<script type="text/javascript">
            $(document).ready(function()
            
                setTimeout(function()
                
                    $("div#outer").fadeOut("slow", function ()
                    
                        $("div#outer").html($("div#text").html()); //.html or .text
                    );
                 , 5000);
             );
        </script>

【讨论】:

【参考方案2】:

这里是演示链接:http://jsfiddle.net/pHJgP/8/

HTML 代码:

<div id="outer"><img src="http://existdissolve.com/wp-content/uploads/2010/08/microsoft-logo-64x64.png"  /></div>
<div id="text" style="display:none">Text here</div>

Jquery 代码:

$(document).ready(function()
    
        setTimeout(function()
        
            $("div#outer").fadeOut("slow", function ()
            
                $("div#outer img").remove();                
                $("div#outer").html($("div#text").text());
                $("div#outer").show();
            );
         , 5000);
     );

希望这对你有帮助。

【讨论】:

我们可以循环遍历 settimeout 否则只会淡出一次 嗯,是的,你可以使用循环。 这很有帮助,我需要先隐藏文本,然后在图像消失后显示文本。这是我在描述中忘记提到的事情,但你比我领先一步 :)【参考方案3】:

如果您的问题是让文本仅在图像消失后显示 - 那么这里有一个选项可以让您不必对文本容器执行任何 JavaScript 工作。

只需将图像容器放在文本上,然后像现在一样淡出,如下所示:


JavaScript

$(function() 
    setTimeout(function()
    
        var $el = $('div#outer');        
        $el.fadeOut("slow", $el.remove);
     , 5000);
);​

HTML

<div class="transition-wrapper">
    <div id="outer">Image here</div>
    <div id="text">Text here</div>
</div>

CSS

注意这里的颜色只是为了说明

.transition-wrapper 
    position: relative;    
    width: 500px;
    height: 500px;

#outer 
    position:absolute;
    z-index: 100;
    width: 500px;
    height: 500px;
    background: red;

#text 
    background: blue;
    height: 100%;
    width: 100%;

JSFiddle

http://jsfiddle.net/mJUzr/

【讨论】:

以上是关于延迟 5 秒后用文字替换图像的主要内容,如果未能解决你的问题,请参考以下文章

用特定类替换图像元素上延迟加载插件的图像属性

合并条件(或合并后用 NaN 替换)

UITableView 中多张图片的延迟加载

重新排列后用另一个列表中的数字替换一个列表

在Unix中用“|”替换最后9个分隔符“,”

在 Android 上像 tumblr 一样延迟加载图像