javascript - 仅在显示 gif 后提示警报

标签 javascript jquery events gif prompt

这就是我的代码应该如何工作的,如果我单击“按钮”,我将转到 display() ,其中将显示完整的 gif,并且只有在显示 gif 后,才会出现提示。我该怎么做?

我当前的代码与我想要实现的效果相反,即它先提示然后显示 gif。

//button
<input id="button" type="button" value="next" onClick="display()"/>

//javascript
<div id="display_panel">
    <script type="text/javascript">
        function display(){
            if(gameStatArray[7][1][1]==1){
                var div = document.getElementById('display_panel');

                div.innerHTML = div.innerHTML + '<div id="image_display"><img src="drawable/clip1.gif"/></div>';

                if (confirm("what do you want to continue?")) {
                    alert("yes");
                } else {
                    alert("no");
                }
            }
        }
    </script>
</div>

预先感谢任何愿意回答的人。

最佳答案

所以我认为这里发生的一切是当您将以下标记注入(inject)到文档中时:

<img src="drawable/clip1.gif" />

浏览器正在向服务器发出请求以获取图像。这可能只需要几毫秒,但在那段时间你的脚本已经继续并且 alert()位已执行。

最简单的解决方案是 <img>标记从一开始就加载到文档中,但最初使用 CSS 隐藏它。您的 JavaScript 需要做的就是显示图像,也许可以通过添加一个类来显示图像。

document.getElementById('clip1').className = 'show-me';

现在 HTML 看起来像:

<img id="clip1" class="show-me" src="drawable/clip1.gif" />

<img> 时,浏览器已经获取了图像。标签首先在文档中呈现。所以无需等待。

关于javascript - 仅在显示 gif 后提示警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31498621/

相关文章:

jquery - pageinit 和 pageshow 之间的区别

C#:字符串作为事件的参数?

javascript - 在 Chrome 扩展中使用 Require.JS 时如何让 chrome.runtime.onInstalled 触发

javascript - 将段落高度限制为另一个 div 中图像的高度

javascript - 无法覆盖 h1 文本的默认边距?

jQuery - css() 在 Firefox 中无法正常工作

php - 将 PHP var 从远程 PHP 脚本获取到 JQuery

javascript - 将 div 顺序保存在本地存储中

javascript - MVC5 : Posting JSON via Ajax not correctly passing data to Controller?

javascript - TinyMCE Javascript WYSIWYG 编辑器无法与 Ember js 一起使用