【问题标题】:Show popup after page load页面加载后显示弹出窗口
【发布时间】:2013-10-31 13:01:38
【问题描述】:

我按照在线教程创建了一个 jQuery 弹出窗口。

我想在页面加载后/页面加载后显示此弹出窗口+如何将其编码为页面加载 5 秒后出现的样子。

由于我对 jQuery 的了解不足,我无法使其按我的要求工作。

知道怎么做吗?

function PopUp(){
    document.getElementById('ac-wrapper').style.display="none"; 
}
#ac-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255,255,255,.6);
    z-index: 1001;
}

#popup {
    width: 555px;
    height: 375px;
    background: #FFFFFF;
    border: 5px solid #000;
    border-radius: 25px;
    -moz-border-radius: 25px;
    -webkit-border-radius: 25px;
    box-shadow: #64686e 0px 0px 3px 3px;
    -moz-box-shadow: #64686e 0px 0px 3px 3px;
    -webkit-box-shadow: #64686e 0px 0px 3px 3px;
    position: relative;
    top: 150px; left: 375px;
}
<div id="ac-wrapper">
    <div id="popup">
        <center>
            <h2>Popup Content Here</h2>
            <input type="submit" name="submit" value="Submit" onClick="PopUp()" />
        </center>
    </div>
</div>

<p>Page Content Here......</p>

【问题讨论】:

  • 使用Jquery ui 一个,这有一个setting 会为你做这一切。
  • 将您的代码放入 $(document).ready() 函数并从输入文本框中删除 onclick.. 检查我的答案
  • uposonghar.com/popup.html”是钓鱼链接

标签: javascript jquery html css popup


【解决方案1】:

当 DOM 完成加载后,您可以在 $(document).ready() 函数中添加代码。

从这里移除 onclick:

<input type="submit" name="submit" value="Submit" onClick="PopUp()" />

试试这个:

$(document).ready(function(){
   setTimeout(function(){
      PopUp();
   },5000); // 5000 to load it after 5 seconds from page load
});

【讨论】:

  • setTimeout 之后缺少一个括号“(”。应该是setTimeout( function(){ PopUp(); }, 5000); 我试图编辑,但不能只用一个字符进行编辑。
  • 可以请帮助我了解如何在页面加载时关闭弹出窗口 html 加载
  • 为什么我的模态弹出窗口在页面加载时加载
【解决方案2】:

试试这样的

<script type="text/javascript">
function PopUp(hideOrshow) {
    if (hideOrshow == 'hide') document.getElementById('ac-wrapper').style.display = "none";
    else document.getElementById('ac-wrapper').removeAttribute('style');
}
window.onload = function () {
    setTimeout(function () {
        PopUp('show');
    }, 5000);
}
</script>

和你的 html

<div id="ac-wrapper" style='display:none'>
    <div id="popup">
        <center>
             <h2>Popup Content Here</h2>    
            <input type="submit" name="submit" value="Submit" onClick="PopUp('hide')" />
        </center>
    </div>
</div>

演示JsFiddle

【讨论】:

  • 为什么我的模式弹出窗口在页面加载时加载
  • @user94 ,因为该问题要求在页面加载时显示模式。删除 window.onload 部分应该会阻止它在页面加载时加载。
  • 谢谢..我还有一个问题..我使用的是垂直的 slick silder,我在其中添加了一个阅读更多按钮..但它不起作用
【解决方案3】:
  <script type="text/javascript">
  jQuery(document).ready(function(){
         setTimeout(PopUp(),5000); // invoke Popup function after 5 seconds 
  });
   </script>

【讨论】:

  • 为什么我的模式弹出窗口在页面加载时加载
【解决方案4】:

使用以下代码在页面加载时显示弹出框:

$(document).ready(function() { 
  var id = '#dialog';
  var maskHeight = $(document).height();
  var maskWidth = $(window).width();
  $('#mask').css({'width':maskWidth,'height':maskHeight}); 
  $('#mask').fadeIn(500); 
  $('#mask').fadeTo("slow",0.9); 
        var winH = $(window).height();
  var winW = $(window).width();
        $(id).css('top',  winH/2-$(id).height()/2);
  $(id).css('left', winW/2-$(id).width()/2);
     $(id).fadeIn(2000);  
     $('.window .close').click(function (e) {
  e.preventDefault();
  $('#mask').hide();
  $('.window').hide();
     });  
     $('#mask').click(function () {
  $(this).hide();
  $('.window').hide();
 });  
 
});

<div class="maintext">
<h2> Main text goes here...</h2>
</div>
<div id="boxes">
<div style="top: 50%; left: 50%; display: none;" id="dialog" class="window"> 
<div id="san">
<a href="#" class="close agree"><img src="close-icon.png" width="25" style="float:right; margin-right: -25px; margin-top: -20px;"></a>
<img src="san-web-corner.png" width="450">
</div>
</div>
<div style="width: 2478px; font-size: 32pt; color:white; height: 1202px; display: none; opacity: 0.4;" id="mask"></div>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.js"></script> 

【讨论】:

    【解决方案5】:

    您还可以使用名为 jQuery-confirm 的插件更轻松地完成此操作。您所要做的就是在您的页面中添加脚本标签和它们提供的样式表

    <link rel="stylesheet" 
    href="https://cdnjs.cloudflare.com/ajax/libs/jquery-
    confirm/3.3.0/jquery-confirm.min.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-
    confirm/3.3.0/jquery-confirm.min.js"></script>
    

    然后调用alert框的例子是:

       <script>
            $.alert({
        title: 'Alert!',
        content: 'Simple alert!',
         });
    

    【讨论】:

    • 为什么我的模式弹出窗口在页面加载时加载
    【解决方案6】:
        <script type="text/javascript">
            $(window).on('load',function(){
                setTimeout(function(){ alert(" //show popup"); }, 5000); 
            });
        </script>
    

    【讨论】:

    • 虽然此代码可以解决 OP 的问题,但最好包含关于您的代码如何解决 OP 问题的说明。这样,未来的访问者可以从您的帖子中学习,并将其应用到他们自己的代码中。 SO 不是编码服务,而是知识资源。此外,高质量、完整的答案更有可能获得支持。这些功能,以及所有帖子都是独立的要求,是 SO 作为一个平台的一些优势,使其与论坛区分开来。您可以编辑以添加其他信息和/或使用源文档补充您的解释
    【解决方案7】:

    如果你不想使用 jquery,使用这个:

    <script>
     // without jquery
    document.addEventListener("DOMContentLoaded", function() {
     setTimeout(function() {
      // run your open popup function after 5 sec = 5000
      PopUp();
     }, 5000)
    });
    </script>
    

    使用 jquery 或

    <script>
      $(document).ready(function(){
       setTimeout(function(){
       // open popup after 5 seconds
       PopUp();
      },5000);  
     });
    </script>
    

    【讨论】:

      猜你喜欢
      • 2021-09-02
      • 1970-01-01
      • 2015-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 2012-07-09
      相关资源
      最近更新 更多